
Намерение: Чтобы иметь возможность развернуть lan-example.com
из любой среды разработки; будь то напрямую из виртуальной ОС или любой системы с одной ОС, или даже через Интернет с использованием ОДНОГО ключа SSH, сохраненного в Keepass. В настоящее время я не могу сделать это из ОС Vagrant, если я явно не сгенерирую его собственный ключ и не авторизую его на каждом из моих серверов развертывания. Я полагаю, что способ сделать то, что я хочу, — это через переадресацию агента пользователя, да?
Хост ОС
- Windows 7 x64
- Ключ SSH, сгенерированный puttygen:
C:\Users\Administrator\.ssh\id_rsa.ppk
- Keepass с Keeagent, хранящим мой ключ SSH. Keeagent установлен в режим «Агент»
- pageant.exe установлен, но не запущен
- Если я хочу подключиться к внешним/внутренним серверам локальной сети, используя свой ключ, Putty обращается к Keeagent — Putty не сохраняет местоположения закрытых ключей в своей конфигурации.
C:\Users\Администратор.ssh\config
Host 192.168.55.2
ForwardAgent yes
Vagrantfile
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :private_network, ip: '192.168.55.2'
config.ssh.forward_agent = true
# Why would I need to set this if Keeagent is handling things?
config.ssh.private_key_path = '~/.ssh/id_rsa_jake_mitchell.ppk'
end
Гостевая ОС (Vagrant)
- Убунту х64
- 192.168.55.2, доступен только через хост
- Ключей SSH нет
/home/vagrant/.ssh
(я их удалил). Цель состоит в том, чтобы позволить User Agent Forwarding через хостовую ОС (Keeagent) заботиться об использовании ключа
LAN Web Host (сайты интрасети)
- Допустим, его домен —
lan-example.com
- Позволяет входить в систему по SSH без пароля только с использованием открытого ключа id_rsa.ppk.
- 192.168.0.2
- Переадресация агента пользователя включена в sshd
Проблема:
Что работает (используя Host OS): Putty, подключение lan-example.com
без необходимости явно указывать ключ SSH.
Что не работает (при использовании гостевой ОС): так как выдает, что нет никаких ключей для использования.ssh -v [email protected]
Я заметил кое-что обета-версия Keeagentчто позволяет мне установить SSH_AUTH_SOCK. Я сделал это и настроил общий ресурс NFS, который позволяет гостевой ОС читать файл; однако это ничего не меняет. Как вообще работает переадресация агента в такой среде? Что в Windows такого особенного, что приводит к сбою?
решение1
Вам нужно подключиться по ssh из хостовой ОС (используя PuTTY на Windows) с включенным перенаправлением агента. Затем из этого сеанса подключитесь по ssh из гостевой ОС к серверу.