Основы SSH на виртуальных машинах Vagrant

Основы SSH на виртуальных машинах Vagrant

Я собираю машину Vagrant (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
[email protected]'s password: 

??

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

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

Обновлять

В VirtualBox виртуальная машина работает, но я не могу выполнить ни одну из следующих команд из консоли Vagrant в дополнение к проблемам с 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.

решение1

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

Сначала откройте этот файл на хост-компьютере:

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

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

ssh на vagrant box с паролем по умолчанию

$ vagrant ssh (default pwd = ‘vagrant’]

Попав в коробку:

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

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

vagrant@lucid64:~$ exit

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

$ vagrant halt
$ vagrant up

Мне это помогло

решение2

У меня была та же проблема, хотя она не была связана с проблемами с ключом 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. Следующее исправило проблему:

# chmod 755 vagrant

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

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

решение3

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

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

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

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

в вашем Vagrantfile.

решение4

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

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

    vagrant plugin install vagrant-vbguest
    

Связанный контент