Использовать закрытый ключ ssh от хоста в гостевой гостевой
Я хочу клонировать кучу частных репозиториев git при создании брандмауэра. В соответствии с этой статьей это возможно с помощью config.ssh.forward_agent = true
. Однако при попытке подключиться к github с помощью чего-то вроде ssh -T [email protected] -o StrictHostKeyChecking=no
он не работает со следующей ошибкой:
Предупреждение. Постоянно добавлен "github.com, 192.30.252.130" (RSA) в список известных хостов. Разрешение отклонено (publickey).
Я отключил конфигурацию до самой простой конфигурации. Вы можете найти его здесь: https://gist.github.com/TomTasche/31f7c45fcffc2997d43a
Когда я делаю "бродяга ssh" и повторю попытку, возникает аналогичная ошибка:
Клонирование в "частные репозитории"... Предупреждение. Постоянно добавлен ключ хоста RSA для IP-адреса "192.30.252.130" в список известных хостов. Разрешение отклонено (publickey). фатальный: удаленный конец неожиданно повесил трубку
Изменить: связанная выше конфигурация работает на узле, работающем под управлением Ubuntu, но не работает ни на узле Mac, ни на хосте Windows. Моя цель - иметь конфигурацию, которая работает на всех этих трех хостах.
Ответы
Ответ 1
Проверьте, включена ли в вашей хост-системе пересылка ssh-agent. Вы можете сделать это, например, добавив этот блок в свой файл ~/.ssh/config
:
Host *
ForwardAgent yes
Если это включено, vagrant ssh
(а также vagrant provision
) должен иметь возможность перенаправлять ваш ключ на гостевую машину.
Вы также можете проверить с помощью ssh-add -l
, знает ли ваш ssh-агент о вашем SSH-ключе. Если он включен в список, и у вас активирована переадресация агента, у вас должен быть успех. В противном случае вы можете добавить ключ к вашему ssh-агенту, запустив ssh-add <path to your key file>
.
Ответ 2
Похоже, вы можете столкнуться с этой конкретной ошибкой:
https://github.com/mitchellh/vagrant/issues/1735
(Несмотря на то, что он "закрыт", он фактически не исправлен)
В Windows SSH Forwarding in Vagrant по умолчанию работает неправильно (из-за ошибки в net-ssh).
Однако есть обходной путь или простой взлом. Вы можете автоматически скопировать свой локальный ключ SSH в Vagrant VM через простую настройку script в вашем VagrantFile. Вот пример:
https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783
Ответ 3
Том,
То, что вы делаете, носит довольно общий характер, и я не думаю, что это Vagrant
.
Попробуйте выполнить следующие действия:
- отредактируйте
/etc/ssh/sshd_config
- Установить
LogLevel debug
- Перезапустите службу sshd
sudo service sshd restart
или /etc/init.d/sshd restart
-
tail -f /var/log/authlog
- заметьте, файл может быть чем-то вроде /var/log/authd.log
или /var/log/secure
или что-то в этом роде.
- Смотрите, что происходит, когда вы подключаетесь. Это должно дать вам некоторые указания на то, почему это не удается.
Снова извините, я не знаком с Vagrant
, но мне интересно, работает ли запуск script как другой пользователь, и в этом случае перенаправление агента может работать не так, как ожидалось?