Я использовал образ 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 на каждой.
Кто-нибудь знает, почему это происходит и что можно сделать, чтобы это исправить? Должен ли я сообщить об этом как об ошибке?
vagrant
на своем хосте? Как насчет включения бродячей отладки и посмотреть, что радует?vagrant ssh
использует небезопасную пару ключей vagrant для аутентификации ключа паба.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
сценарии.Ответы:
Это проблема с ключом хоста SSH (НЕ связана с аутентификацией с открытым ключом).
Похоже, проблема заключалась в том, что бродячему образу облака ubuntu не удалось сгенерировать новые ключи хоста (если их там нет
/etc/ssh/
) во время первой загрузки (vagrant up
).В дополнение к ручной генерации ключей хоста SSH, упомянутых Moshe
Это также можно сделать, добавив следующую команду в
/etc/rc.local
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
Надеюсь, поможет.
источник
Workaroud:
Импортируйте устройство ~ / .vagrant.d / boxes / raring / box.ovf в VirtualBox
Получить имя виртуальной машины
Запустите ВМ
Включите следующую строку в /etc/rc.local (конечно, в самой виртуальной машине!):
Выключение ВМ
Удалить старые изображения
Экспорт ВМ в формат .ovf
Выполнено :)
Сделал также отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1217950
источник
Похоже, это была ошибка в старых базовых коробках. В текущих изображениях базового блока (созданных 20 августа 2013 г.) ключи создаются автоматически при первой загрузке блока.
источник