Usei a imagem do Vagrant para 13.04 em http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-i386-vagrant-disk1.box para criar uma nova máquina virtual e tentei me conectar ao usando ssh. No entanto, o SSH sempre se desconectava imediatamente, sem sequer chegar ao estágio em que tentava se autenticar.
Abri a VM na GUI do VirtualBox e observei 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 assumiria que eles deveriam ser executados automaticamente em algum momento, especialmente considerando que (a) eu não precisei executá-los quando instalei o Ubuntu a partir de uma imagem ISO; e (b) porque o Vagrant deve ser projetado para ser executado após a execução vagrant up
você pode usar imediatamente a VM sem nenhuma configuração adicional.
Talvez eu precise criar um grande número de máquinas virtuais em um futuro próximo e esperava poder usar o Vagrant para fazê-lo, mas não posso fazê-lo se precisar corrigir manualmente o SSH em cada uma delas.
Alguém sabe por que isso acontece e o que pode ser feito para corrigi-lo? Devo denunciá-lo como um bug?
vagrant
em seu host? Que tal ativar a depuração de vagabundos e ver o que acontece?vagrant ssh
usa o par de chaves inseguro do vagrant para autenticação de chave de pub.test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
ou use ossh-keygen
para gerar as chaves.test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
no/etc/rc.local
script.Respostas:
Este é um problema de chave do host SSH (NÃO relacionado à autenticação de chave pública).
Parece que o problema foi que a imagem vagante da nuvem ubuntu falhou ao gerar as novas chaves do host (se não estiverem lá
/etc/ssh/
) durante a primeira inicialização (vagrant up
).Além de gerar manualmente as chaves de host SSH mencionadas por Moshe
Isso também pode ser feito adicionando o seguinte comando no diretório
/etc/rc.local
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
Espero que ajude.
fonte
Solução alternativa:
Importar o appliance ~ / .vagrant.d / boxes / raring / box.ovf no VirtualBox
Obter nome da VM
Inicie a VM
Inclua a seguinte linha no /etc/rc.local (é claro na própria VM!):
VM de desligamento
Excluir imagens antigas
Exportar VM no formato .ovf
Feito :)
Também fez um relatório de bug: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1217950
fonte
Parece ter sido um erro nas caixas base mais antigas. Nas imagens atuais da caixa base (geradas em 20 de agosto de 2013), as chaves parecem ser criadas automaticamente quando a caixa é inicializada pela primeira vez.
fonte