Ho usato l'immagine di Vagrant per 13.04 da http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-i386-vagrant-disk1.box per creare una nuova macchina virtuale e ho provato a connettermi a usando ssh. Tuttavia, l'SSH si è sempre disconnesso immediatamente, senza nemmeno arrivare allo stage in cui ha tentato di autenticarsi.
Ho aperto la VM nella GUI di VirtualBox e ho guardato il file di registro SSH (auth.log). Era pieno di linee come questa:
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]
Il problema è stato risolto eseguendo i seguenti comandi:
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
Suppongo che questi dovrebbero essere eseguiti automaticamente a un certo punto, soprattutto dato che (a) non ho dovuto eseguirli da solo quando ho installato Ubuntu da un'immagine ISO, e (b) perché Vagrant dovrebbe essere progettato che dopo l'esecuzione vagrant up
puoi usare immediatamente la VM senza alcuna configurazione aggiuntiva.
Potrei aver bisogno di creare un gran numero di macchine virtuali nel prossimo futuro e speravo di poter usare Vagrant per farlo, ma non posso farlo se dovrò riparare manualmente SSH su ognuna.
Qualcuno sa perché questo accada e cosa si può fare per risolverlo? Devo segnalarlo come un bug?
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
o utilizzare il ssh-keygen
per generare le chiavi.
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
degli /etc/rc.local
script.
vagrant
del tuo host? Che ne dici di attivare il debug vagabondo e vedere cosa succede?vagrant ssh
utilizza la coppia di chiavi non sicura di Vagrant per l'autenticazione della chiave pub.