22

Я собираю бродячую машину (Ubuntu 12.04) со следующими требованиями:

  • Доступ по SSH через Vagrant для пользователя с привилегиями sudo.

Я сгенерировал открытый / закрытый ключи (через ssh-keygen) на хосте и переместил открытый ключ в файл authorized_keys на гостевой. И я попробовал SSH без пароля.

Пара вещей происходит, когда я vagrant ssh с парольными SSH-ключами:

  • Я должен набрать свою ключевую фразу на хост-машине для SSH в гостевой виртуальной машине.
  • Каждый раз, когда я набираю правильную ключевую фразу, она не принимается.

В результате чего я получаю следующее сообщение об ошибке:

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Тогда я попробовал ssh без пароля.

vagrant ssh
vagrant@127.0.0.1's password: 

??

Я никогда не настраивал бродячего пользователя! Это должен быть user@hostname как я его настроил, и он может подтвердить работу при загрузке виртуальной машины в VirtualBox.

Как получить закрытые ssh-ключи для правильной работы с vagrant? Что делать на хосте, что делать на госте?

Обновить

В VirtualBox виртуальная машина работает, но я не могу выполнить ни одну из следующих команд из vagrant console в дополнение к проблемам с vagrant ssh:

vagrant up vagrant halt

Единственная команда vagrant, которая работает - vagrant suspend . Когда я использую его, я могу остановить машину с помощью vagrant halt . Вот вывод:

$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

6 ответов6

21

Я добавляю это решение для всех, кто заходит в эту ветку:

Сначала откройте этот файл на хост-машине:

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile

Убедитесь, что config.ssh.private_key_path установлен на ваш файл закрытого ключа. Если не обновить это

ssh to vagrant box с pwd по умолчанию

$ vagrant ssh (default pwd = ‘vagrant’]

Однажды в коробке:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys

Добавьте свой открытый ключ к этому файлу, сохраните файл и выйдите из поля.

vagrant@lucid64:~$ exit

Вернуться к локальной машине

$ vagrant halt
$ vagrant up

Это сработало для меня

3

У меня была такая же проблема, хотя это было не из-за проблем с ключами SSH. При запуске машины Virtualbox работал и воспитывал гостя нормально. Я смог подключиться к машине по SSH, и vagrant ssh сработал, хотя и попросил у меня пароль. Я вошел в систему и нашел следующее в /var/log/auth.log на госте:

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)
Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant
Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant

Я вошел, чтобы посмотреть разрешения для /home /vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Не хорошо, что-то еще, что я делал, непреднамеренно изменило права доступа к /home /vagrant dir. Следующее исправило проблему:

# chmod 755 vagrant

drwxr-xr-x  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

После этого я выключил машину, запустил ее снова, и Вагрант все сделал хорошо. :-)

2

Попробуйте скопировать незащищенный открытый ключ в файл .ssh/authorized_keys в гостевой ящик.

Надеюсь, это решит вашу проблему с ssh.

Если вы хотите сделать его безопасным, то вы можете сделать это, скопировав свой собственный файл .ssh/id_rsa.pub в вышеупомянутый файл. И настройка

config.ssh.private_key_path = '~/.ssh/id_rsa'

в вашем Vagrantfile.

2

Для тех, кто получает эту проблему. это заняло у меня целую вечность. (Тем не менее, исправить это легко!) Итак, согласно документации Vagrant, для пользователя 'vagrant' есть пароль по умолчанию, который 'vagrant' без одинарных кавычек. вы можете прочитать больше об этом на их официальном сайте http://docs.vagrantup.com/v2/boxes/base.html

2

У меня были похожие проблемы. В конце концов я решил это:

  • Убедиться, что Vagrant и Virtualbox были обновлены
  • Убедиться в актуальности гостевых дополнений VirtualBox, установив плагин vagrant-vbguest GitHub RubyGems :

    vagrant plugin install vagrant-vbguest
    
0

Чтобы устранить проблему в Mac OS High Sierra, выполните следующие действия:-

  1. Я использую бродягу 5.X версия
  2. Прежде всего загрузите виртуальную коробку и не устанавливайте ее.
  3. Перейдите в «Системные настройки» -> «Конфиденциальность» и нажмите «Разрешить загрузку по Америке».
  4. Заблокируйте вышеуказанные изменения и установите виртуальную коробку.
  5. Вы получите сообщение об успешной установке для вашего виртуального ящика.
  6. Теперь перейдите в терминал типа vagrant up --provision
  7. Он запустит скрипты, если они у вас есть, и загрузит виртуальную коробку для вас. 8.Вы получите сообщение «Готово»

  8. Убедитесь, что виртуальный ящик установлен правильно, а затем выполните только команду vagrant. если вы столкнулись с проблемой, удалите виртуальную коробку, запустив скрипт удаления из комплекта pkg и попробуйте установить снова.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .