Основы SSH на Vagrant VM

23

Я строю бродячую машину (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 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.
rhodee
источник

Ответы:

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

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

Сучит Парих
источник
Спасибо за это - мне интересно, однако, что, если возможно ssh в коробку как пользователь отличается от vagrantи использовать пару ключей pub / priv? Далее вы можете установить путь к желаемому закрытому ключу ssh из Vagrantfile, как это ?
Роди
2
Я не могу найти папку «включить». Я просто нахожу папку 0, затем virtualbox, затем 4 файла - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Есть идеи, что делать дальше?
Дарий.В
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

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

Сэм Кричли
источник
Хороший совет. Я также должен был сделатьchmod -R 755 /home/vagrant/.ssh
Wisbucky
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

Denn
источник
2

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

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

    vagrant plugin install vagrant-vbguest
    
Флимм
источник
0

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

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

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

Dibyajyoti Nayak
источник