Utilicé la imagen Vagrant para 13.04 de http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-i386-vagrant-disk1.box para crear una nueva máquina virtual e intenté conectarme a usando ssh Sin embargo, el SSH siempre se desconectaba de inmediato, sin siquiera llegar a la etapa donde intentaba autenticarse.
Abrí la VM en la GUI de VirtualBox y miré el archivo de registro SSH (auth.log). Estaba lleno de líneas 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]
El problema se resolvió ejecutando los siguientes 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
Supongo que estos deberían ejecutarse automáticamente en algún momento, especialmente dado que (a) no tuve que ejecutarlos yo mismo cuando instalé Ubuntu desde una imagen ISO, y (b) porque se supone que Vagrant está diseñado para que después de ejecutarlo vagrant up
puede usar inmediatamente la VM sin ninguna configuración adicional.
Es posible que necesite crear una gran cantidad de máquinas virtuales en el futuro cercano y esperaba poder usar Vagrant para hacerlo, pero no puedo hacerlo si voy a tener que arreglar manualmente SSH en cada una.
¿Alguien sabe por qué sucede esto y qué se puede hacer para solucionarlo? ¿Debo informarlo como un error?
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
o usar ssh-keygen
para generar las claves.
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
en el /etc/rc.local
script.
vagrant
en tu host? ¿Qué hay de activar la depuración vagabunda y ver qué pasa?vagrant ssh
utiliza el par de claves inseguro del vagabundo para la autenticación de clave de pub.