Não é possível ssh na nova instalação do Vagrant da 13.04


9

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 upvocê 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?


Você instalou o mais recente vagrantem seu host? Que tal ativar a depuração de vagabundos e ver o que acontece? vagrant sshusa o par de chaves inseguro do vagrant para autenticação de chave de pub.
— Terry Wang

Sim, este é o mais novo vagabundo. Observe que meu problema não é o par de chaves vagantes, é a chave Machine do servidor SSH que não está sendo definida. Se o servidor SSH não tiver uma chave de máquina, não há como se conectar a ele.
— Moshe Katz

Eu apenas tentei uma nova 12.10 VM e a mesma coisa aconteceu.
— Moshe Katz

Desculpe, não li a pergunta com atenção. Eu estava com problema de chave de host sshd e não com autenticação de chave pública. Parece que durante a primeira imagem da nuvem de inicialização do Ubuntu falhou ao gerar as novas chaves do host (se NÃO encontrado). Isso pode ser feito por test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-serverou use o ssh-keygenpara gerar as chaves.
— Terry Wang

Deve haver test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-serverno /etc/rc.localscript.
— Terry Wang

Respostas:


5

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

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

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.


11
Essa é uma solução temporária, mas não devemos denunciá-la como um bug nessa imagem? Todas as chaves já não devem estar pré-geradas?
— Radek Simko

5

Solução alternativa:

  • Importar o appliance ~ / .vagrant.d / boxes / raring / box.ovf no VirtualBox

    VBoxManage import ~/.vagrant.d/boxes/raring/box.ovf
    
  • Obter nome da VM

    VBoxManage list vms
    
  • Inicie a VM

    VBoxManage startvm ubuntu-cloudimg-raring-vagrant-amd64
    
  • Inclua a seguinte linha no /etc/rc.local (é claro na própria VM!):

    test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
    
  • VM de desligamento

    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
    

Feito :)

Também fez um relatório de bug: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1217950


3

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.


Estou encontrando este bug (novamente) agora, e parece pelo relatório de erros de @ S0me0ne que outras pessoas também estão. Eu confirmei no / etc / ssh que os arquivos principais não estão lá. Isso foi usando as imagens de 24 de setembro.
— malvim

Ok, eles acabaram de lançar outro "lote" de máquinas (de 28 de setembro de 2013) que cria as chaves ausentes corretamente. Consegui verificar isso importando as caixas usando o VBoxManage. Estranhamente, quando eu uso "vagrant up", os arquivos não estão lá! Existe uma diferença entre importar diretamente para o VB e usar o vagrant?
— malvim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.