Основы SSH на Vagrant VM

40689
rhodee

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

6 ответов на вопрос

21
Suchit Parikh

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

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

$ 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 [например, так] (http://vagrantup.com/v1/docs/config/ssh/private_key_path.html)? rhodee 11 лет назад 0
Я не могу найти папку «включить». Я просто нахожу папку 0, затем virtualbox, затем 4 файла - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Есть идеи, что делать дальше? Darius.V 8 лет назад 2
3
Sam Critchley

I had the same problem although it wasn't due to SSH key issues. When starting the machine, Virtualbox worked and brought the guest up fine. I was able to SSH into the machine myself, and vagrant ssh worked although it asked me for a password. I logged in and found the following in /var/log/auth.log on the guest:

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 

I went in to look at permissions for /home/vagrant:

drwxrwxrwx 6 vagrant vagrant 4096 Feb 13 10:15 vagrant 

Not good, something else I'd been doing had inadvertently changed the permissions of the /home/vagrant dir. The following fixed the issue:

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

After that I shut the machine down, started it again and vagrant did its thing fine. :-)

Хороший совет. Я также должен был сделать `chmod -R 755 / home / vagrant / .ssh` wisbucky 7 лет назад 0
2
Gaurav Agarwal

Try copying the vagrant insecure public key into the file .ssh/authorized_keys into the guest box.

Hope this resolves your ssh issue.

If you want to make it secure then you can do so by copying your own .ssh/id_rsa.pub into the aforementioned file. And setting the

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

in your Vagrantfile.

2
Denn

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

2
Flimm

I had similar issues. Eventually I solved it by:

  • Making sure Vagrant and Virtualbox were both up-to-date
  • Making sure VirtualBox Guest Additions were up-to-date by installing vagrant-vbguest plugin GitHub RubyGems :

    vagrant plugin install vagrant-vbguest 
0
Dibyajyoti Nayak

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

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

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

Похожие вопросы