Isso parece ter sido um bug nas caixas de base mais antigas. Nas imagens da caixa base atual (geradas em 20 de agosto de 2013), as chaves parecem ser criadas automaticamente quando a caixa é inicializada pela primeira vez.
Eu usei a imagem do Vagrant para 13.04 de link para criar uma nova máquina virtual e tente conectar-se a ela usando o ssh. No entanto, o SSH sempre se desconectava imediatamente, sem sequer chegar ao estágio em que tentava autenticar.
Eu abri a VM no VirtualBox GUI e olhei para o arquivo de log SSH (auth.log). Estava cheio de linhas como esta:
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Jul 25 17:57:02 vagrant-ubuntu-raring-32 sshd[898]: fatal: No supported key exchange algorithms [preauth]
O problema foi resolvido executando os seguintes comandos:
sudo ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
Eu diria que eles devem rodar automaticamente em algum momento, especialmente considerando que (a) eu não precisei executá-los quando eu instalei o Ubuntu a partir de uma imagem ISO, e (b) porque o Vagrant deveria ser projetado depois de executar vagrant up
, você pode usar imediatamente a VM sem qualquer configuração adicional.
Eu posso precisar criar um grande número de máquinas virtuais em um futuro próximo e eu estava esperando que eu pudesse usar o Vagrant para fazer isso, mas eu não posso fazê-lo se eu tiver que corrigir manualmente o SSH em cada um.
Alguém sabe por que isso acontece e o que pode ser feito para corrigi-lo? Devo denunciá-lo como um bug?
Isso parece ter sido um bug nas caixas de base mais antigas. Nas imagens da caixa base atual (geradas em 20 de agosto de 2013), as chaves parecem ser criadas automaticamente quando a caixa é inicializada pela primeira vez.
Este é um problema de chave de host SSH (NÃO relacionado à autenticação de chave pública).
Parece que o problema foi que a imagem do vagrant do Ubuntu não conseguiu gerar as novas chaves do host (se elas não estão lá em /etc/ssh/
) durante a primeira inicialização ( vagrant up
).
Além de gerar manualmente as chaves de host SSH mencionadas por Moshe
sudo ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
Também pode ser feito adicionando o seguinte comando no /etc/rc.local
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
Espero que ajude.
Área de trabalho:
Importe o dispositivo ~ / .vagrant.d / boxes / raring / box.ovf no VirtualBox
VBoxManage import ~/.vagrant.d/boxes/raring/box.ovf
Obtenha o nome da VM
VBoxManage list vms
Iniciar a VM
VBoxManage startvm ubuntu-cloudimg-raring-vagrant-amd64
Inclua a seguinte linha em /etc/rc.local (claro, na própria VM!):
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
Desligar VM
sudo halt
Excluir imagens antigas
rm ~/.vagrant.d/boxes/raring/box.ovf ~/.vagrant.d/boxes/raring/box-disk1.vmdk
Exportar VM no formato .ovf
VBoxManage export ubuntu-cloudimg-raring-vagrant-amd64 --output ~/.vagrant.d/boxes/raring/box.ovf
Concluído:)
Também fez um relato de erro: link