vagrant ssh звонит 22 вместо 2222?- В доступе отказано (publickey) - PullRequest
0 голосов
/ 29 января 2019

В течение многих лет я использовал vagrant ssh, чтобы войти в мою настройку VirtualBox / Ubuntu 16.04.Недавно у меня были проблемы с настройками и разрешениями по умолчанию, эта проблема широко обсуждалась в Интернете, поэтому я начал использовать пользовательские ключи.Я вставил открытый ключ в / home / ubuntu / authorized_keys в моей виртуальной машине с Ubuntu и указал моему Vagrantfile на закрытый ключ на ~ / .ssh / id_ecdsa.

Проблема в том, что когда я vagrant sshЯ получаю сообщение об ошибке:

vagrant@127.0.0.1: Permission denied (publickey)

Я могу соединиться с: ssh vagrant@127.0.0.1 -p 2222, но я хочу снова использовать vagrant ssh.

Во время загрузки: SSH address: 127.0.0.1:2222 и я могу подключиться к этому через Webstorm и конфигурацию «OpenSSH и агент аутентификации».

    § vagrant ssh-config
        Host pfbox
          HostName 127.0.0.1
          User vagrant
          Port 2222

Если я ssh vagrant@127.0.0.1, я получаю сообщение ssh: connect to host 127.0.0.1 port 22: Connection refused

Возможно vagrant sshзвонит порт 22 вместо 2222?Может быть, что-то не так с моей настройкой пользовательских ключей?Я заблудился после большого количества онлайн-исследований.

Я использовал ssh-keygen -t ecdsa -b 521 для создания ключей, которые рекомендует OpenSSH на их сайте.Я также попробовал это с RSA.

MBP Mojave, Vagrant 2.2.3 / VirtualBox 6.0.2.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Фернандо дал мне инструменты, чтобы найти ответ.Большое ему спасибо!Тем не менее, я провел много исследований по этому вопросу, и я хочу показать здесь, что важно для решения этой общей проблемы.Это не очень хорошо описано в документах или других источниках.

1) Подробная диагностика очень полезна.vagrant ssh -- -vv

2) В моем vagrantfile у меня есть эта строка:

pfbox.ssh.private_key_path = ["~/.vagrant.d/insecure_private_key", "~/.ssh/id_ecdsa"]

Я использую пользовательские ключи нового формата ecdsa, но я такжепробовал rsa.

3) В моей синхронизированной папке на корневом уровне на моей хост-машине у меня есть .ssh с двумя файлами внутри.Я копирую и вставляю информацию открытого ключа из ~ / .ssh на моем компьютере в файл author_keys в каталоге .ssh в моей синхронизированной папке.vagrant ssh проверяет этот файл на наличие открытого ключа.Чтобы создать синхронизированную папку, добавьте ее в свой vagrant-файл:

mybox.vm.synced_folder "mydir/", "/home/vagrant"

Это зеркало вашего рабочего каталога на гостевом сервере Vagrant.

После этой установки Vagrant знаетгде закрытые и открытые ключи находятся и могут вставляться в ssh.

Ключевой момент, о котором я никогда не видел, упоминавшийся где-либо в Vagrant или связанных с ним SO и других местах, заключается в том, что закрытый ключ должен находиться на хосте и публичномключ в коробке.Это, вероятно, хорошо известно из других источников, но для нас, новичков, это, конечно, новая и важная информация.

0 голосов
/ 29 января 2019

Поскольку vagrant ssh отвечает с ошибкой аутентификации, порт все еще прослушивает порт 2222.

Я бы посоветовал проверить, находится ли закрытый ключ по умолчанию там и доступен для чтения (например, по умолчанию для провайдера VirtualBox установлено.vagrant/machines/default/virtualbox/private_key).

Если это так, проверьте подробный вход в систему (vagrant ssh -- -vv).В любом случае, если локальный ssh ​​работает, это означает, что в вашей папке ~/.ssh/ есть действительный pkey, поэтому (например) vagrant ssh -- -i ~/.ssh/id_rsa должно работать.

...