Я использовал образ Vagrant для 13.04 из http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-i386-vagrant-disk1.box, чтобы создать новую виртуальную машину и попытался подключиться к это с помощью SSH. Однако SSH всегда отключался немедленно, даже не доходя до стадии, на которой он пытался пройти аутентификацию.
Я открыл виртуальную машину в графическом интерфейсе VirtualBox и посмотрел файл журнала SSH (auth.log). Это было полно строк, как это:
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]
Проблема была решена путем выполнения следующих команд:
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
Я бы предположил, что они должны запускаться автоматически в какой-то момент, особенно учитывая, что (а) мне не нужно было запускать их самостоятельно, когда я установил Ubuntu из образа ISO, и (б) потому, что Vagrant должен быть спроектирован так, чтобы после запуска vagrant up
Вы можете сразу использовать виртуальную машину без дополнительной настройки.
Возможно, мне потребуется создать большое количество виртуальных машин в ближайшем будущем, и я надеялся, что смогу использовать Vagrant для этого, но я не смогу этого сделать, если мне придется вручную устанавливать SSH на каждой.
Кто-нибудь знает, почему это происходит и что можно сделать, чтобы это исправить? Должен ли я сообщить об этом как об ошибке?
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
или использовать ssh-keygen
для генерации ключей.
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
в /etc/rc.local
сценарии.
vagrant
на своем хосте? Как насчет включения бродячей отладки и посмотреть, что радует?vagrant ssh
использует небезопасную пару ключей vagrant для аутентификации ключа паба.