4

Я пытаюсь подключиться через SSH с моего MacBook к Vagrant-машине.

vagrant ssh работает нормально, но мне интересно, почему он не работает, когда я использую ssh из Mac Terminal.

Вот ошибка, которую он выдает:

Raghavendras-MacBook-Pro:~ raghu$ ssh -p 2222 vagrant@127.0.0.1
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

2 ответа2

6

Потому что вы вводите "простую" команду ssh и в результате вы пытаетесь войти в виртуальную машину, используя вашу пару ключей по умолчанию id_rsa+id_rsa.pub .

Если вы явно не добавлен ~/.ssh/id_rsa.pub от MacBook до ~/.ssh/accepted_keys из vagrant учетной записи на ВМ, используемый по умолчанию пар ключей неизвестно к ВМ и будет отвергнут с «Отказано в доступе сообщение, которое вы получите.


Вы можете использовать ключ, который Vagrant создает и вставляет в машину при создании. Запустите следующее из каталога проекта, заменив <machine_id> на имя, которое вы настроили в Vagrantfile (также при условии, что вы используете VirtualBox, в противном случае тоже измените эту часть пути):

ssh -i .vagrant/machines/<machine_id>/virtualbox/private_key -p 2222 vagrant@127.0.0.1
3

Команда ssh vagrant@127.0.0.1 -p 2222 должна работать нормально, но иногда Vagrant меняет порт, который он перенаправляет на локальный хост, так что -p 2222 не будет работать.

Поэтому дважды проверьте, какой порт SSH перенаправляется в / из, и используйте вместо этого номер порта.

Простой способ проверить, что это vagrant ssh из вашего установочного каталога Vagrant, а затем в другом окне оболочки / терминала выполните следующую команду:

ps aux | grep ssh

Там должна быть строка, которая показывает вам, как именно было установлено соединение SSH, которое выглядит так:

ssh vagrant@127.0.0.1 -p 2226 -o Compression=yes -o DSAAuthentication=yes -o LogLevel=FATAL -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /path/to/Vagrant/.vagrant/machines/nodejs/virtualbox/private_key

Игнорируйте основную часть этой команды, если только вам не нужен доступ без пароля. Просто отметьте эту первую часть:

ssh vagrant@127.0.0.1 -p 2226

Это команда - в моем примере - где пересылаемый пост SSH - 2226 . Это работает в моем случае. И если по какой-либо причине вам будет предложено ввести пароль, помните, что пользователь Vagrant по умолчанию - vagrant а пароль по умолчанию для этого пользователя - ... vagrant .

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