No se puede enviar a la nueva instalación de Vagrant de 13.04

9

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 uppuede 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?

Moshe Katz
fuente
¿Instalaste lo último vagranten tu host? ¿Qué hay de activar la depuración vagabunda y ver qué pasa? vagrant sshutiliza el par de claves inseguro del vagabundo para la autenticación de clave de pub.
Terry Wang
Sí, este es el vagabundo más nuevo. Tenga en cuenta que mi problema no es el par de claves vagabundo, es la clave de máquina del servidor SSH que no se está configurando. Si el servidor SSH no tiene clave de máquina, no hay forma de conectarse a él.
Moshe Katz
Acabo de probar una nueva VM 12.10 y sucedió lo mismo.
Moshe Katz
Lo siento, no leí la pregunta con cuidado. Era un problema de clave de host sshd, no una autenticación de clave pública. Parece que durante el primer arranque, la imagen de la nube de Ubuntu no pudo generar las nuevas claves de host (si NO se encuentra). Se puede hacer test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-servero usar ssh-keygenpara generar las claves.
Terry Wang
Debe haber test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-serveren el /etc/rc.localscript.
Terry Wang

Respuestas:

5

Este es un problema de clave de host SSH (NO relacionado con la autenticación de clave pública).

Parece que el problema fue que la imagen vagabunda de la nube de ubuntu no pudo generar las nuevas claves de host (si no están allí /etc/ssh/) durante el primer arranque ( vagrant up).

Además de generar manualmente las claves 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

También se puede hacer agregando el siguiente comando en el /etc/rc.local

test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server

Espero eso ayude.

Terry Wang
fuente
1
Esa es una solución temporal, pero ¿no deberíamos informarlo como un error en esa imagen? ¿No deberían todas las claves ya estar pregeneradas?
Radek Simko
5

Workaroud:

  • Importe el dispositivo ~ / .vagrant.d / boxes / raring / box.ovf en VirtualBox

    VBoxManage import ~/.vagrant.d/boxes/raring/box.ovf
    
  • Obtener nombre de máquina virtual

    VBoxManage list vms
    
  • Inicie la VM

    VBoxManage startvm ubuntu-cloudimg-raring-vagrant-amd64
    
  • Incluya la siguiente línea en /etc/rc.local (¡Por supuesto en la propia máquina virtual!):

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

    sudo halt
    
  • Eliminar imágenes antiguas

    rm ~/.vagrant.d/boxes/raring/box.ovf ~/.vagrant.d/boxes/raring/box-disk1.vmdk
    
  • Exportar VM en formato .ovf

    VBoxManage export ubuntu-cloudimg-raring-vagrant-amd64 --output ~/.vagrant.d/boxes/raring/box.ovf
    

Hecho :)

También hice un informe de error: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1217950

S0me0ne
fuente
3

Esto parece haber sido un error en los cuadros base más antiguos. En las imágenes del cuadro base actual (generadas el 20 de agosto de 2013), las claves parecen crearse automáticamente cuando el cuadro se inicia por primera vez.

Moshe Katz
fuente
Me encuentro con este error (nuevamente) en este momento, y parece que, según el informe de errores de @ S0me0ne, otras personas también lo están. Confirmé en / etc / ssh que los archivos clave no están allí. Esto estaba usando las imágenes del 24 de septiembre.
malvim
Bien, acaban de lanzar otro "lote" de máquinas (del 28 de septiembre de 2013) que crean las claves que faltan correctamente. Pude verificar eso importando las cajas usando VBoxManage. Extrañamente, cuando uso "vagabundo", ¡los archivos no están allí! ¿Hay alguna diferencia entre importar directamente en VB y usar vagrant?
malvim