Основи SSH на бродячих машинах


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таким, як я його налаштував, і можу підтвердити роботу, коли я завантажую VM у VirtualBox.

Як змусити приватні ключі ssh для належної роботи з бродячим? Що робити на господаря, що робити на гостя?

Оновлення

У VirtualBox VM живе, але я не можу виконувати жодну з наведених нижче команд із бродячої консолі на додаток до проблем із 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.

Відповіді:


21

Я додаю це рішення для всіх, хто переходить до цієї теми:

Спочатку відкрийте цей файл на хост-машині:

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

Перевірте, config.ssh.private_key_pathчи встановлено файл вашого приватного ключа. Якщо цього не оновити

ssh до бродячого поля із замовчуванням pwd

$ vagrant ssh (default pwd = ‘vagrant’]

Опинившись у коробці:

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

Додайте до цього файлу свій відкритий ключ і збережіть його та вийдіть з поля

vagrant@lucid64:~$ exit

Повернутися до місцевої машини

$ vagrant halt
$ vagrant up

Це працювало для мене


Дякую за це - мені цікаво, але що робити, якщо можна запустити скриньку в поле, як користувач, відмінний від vagrantі використовувати пару ключів pub / priv? Далі ви можете встановити шлях до потрібного приватного ключа ssh з Vagrantfile так ?
роде

2
Я не можу знайти папку "включити". Я просто знаходжу папку 0, потім virtualbox, потім 4 файли - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Будь-які ідеї, що робити тоді?
Дарій.V

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

Не добре, щось інше, що я робив, ненароком змінило дозволи дому / дім / бродячий реж. Виправлено наступне:

# 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, існує пароль за замовчуванням для користувача "бродячого", який є "бродячим" без єдиних лапок. ви можете прочитати більше того ж на їх офіційному веб-сайті http://docs.vagrantup.com/v2/boxes/base.html


2

У мене були подібні проблеми. Врешті-решт я вирішив це:

  • Переконайтесь, що Vagrant та Virtualbox були оновлені
  • Переконайтесь, що встановлення vagrant-vbguestплагіальних додатків VirtualBox було оновлено, встановивши плагін :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

Виконайте кроки, щоб вирішити проблему в Mac OS High Sierra: -

  1. Я використовую бродяжну версію 5.X
  2. Перш за все завантажте віртуальну скриньку і не встановлюйте її.
  3. Перейдіть до системних налаштувань -> конфіденційність та натисніть дозволити завантаження Америкою ..
  4. Заблокуйте вищезазначені зміни та встановіть віртуальну скриньку.
  5. Ви отримаєте повідомлення про встановлену програму для своєї віртуальної скриньки.
  6. Тепер перейдіть до термінального типу vagrant up - забезпечення
  7. Він запустить сценарії, якщо у вас є такі, і завантажить віртуальну скриньку для вас. 8.Ви отримаєте повідомлення "Готово"

  8. Переконайтесь, що віртуальна скринька встановлена ​​правильно, тоді виконуйте лише бродячу команду. якщо ви зіткнулися з проблемою видалення віртуальної скриньки, запустіть сценарій видалення, який поставляється з pkg, і спробуйте встановити ще раз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.