Użyłem obrazu Vagrant dla 13.04 z http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-i386-vagrant-disk1.box, aby utworzyć nową maszynę wirtualną i próbowałem połączyć się z używając ssh. Jednak SSH zawsze rozłączał się natychmiast, nawet nie przechodząc do etapu, w którym próbował się uwierzytelnić.
Otworzyłem maszynę wirtualną w interfejsie GUI VirtualBox i spojrzałem na plik dziennika SSH (auth.log). Było pełne takich linii:
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]
Problem został rozwiązany przez wykonanie następujących poleceń:
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
Zakładam, że powinny one działać w pewnym momencie automatycznie, szczególnie biorąc pod uwagę, że (a) nie musiałem uruchamiać ich sam, kiedy instalowałem Ubuntu z obrazu ISO, oraz (b) ponieważ Vagrant powinien zostać zaprojektowany tak, aby był uruchamiany po uruchomieniu vagrant up
możesz natychmiast użyć maszyny wirtualnej bez dodatkowej konfiguracji.
Być może w najbliższej przyszłości będę musiał utworzyć dużą liczbę maszyn wirtualnych i miałem nadzieję, że będę mógł to zrobić za pomocą Vagrant, ale nie mogę tego zrobić, jeśli będę musiał ręcznie naprawić SSH na każdym z nich.
Czy ktoś wie, dlaczego tak się dzieje i co można zrobić, aby to naprawić? Czy powinienem zgłosić to jako błąd?
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
lub użyć ssh-keygen
do wygenerowania kluczy.
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
w /etc/rc.local
skrypcie.
vagrant
na swoim hoście? Co powiesz na włączenie błędnego debugowania i zobaczenie, co się stanie?vagrant ssh
używa niepewnej pary kluczy włóczęgi do uwierzytelnienia klucza pub.