Openssh in VM authenticate using Pageant on host
Update: It looks like the network design was completely wrong and the auth flow should be the other way round instead. So this question is moot now.
Current setup: Linux VM (assume common and most updated ones like CentOS 7.1 and Ubuntu 15.04) on Windows 7 host, using Virtualbox.
TL;DR question: Is it possible to have openssh running inside VM to not use local ssh-agent for key auth, but use Peagent on Windows host instead? More complex setup is acceptable.
long question: Originally there are multiple copies of keys on host and VM — Putty format ones on host, and openssh key format on VMs via shared folder, and many of them are not password protected for convenience. But recently I feel the need to consolidate them and add more protection. The keys are for remote administration and checking out source code via version control systems, mainly Git. Вот требования:
- Windows host can ssh to remote server and can use git through ssh.
- Linux VM can ssh to remote server and can use git through ssh.
- Keys are stored on host only, not VMs. (Which mean this won't be a ssh agent forwarding setup)
Point 1 (allowing Windows host to use pageant for auth) is relatively trivial; git setup is essentially down to setting correct $GIT_SSH
переменная окружения. Не только Putty, даже MinGW openssh может подключиться к театрализованному представлению, сохраняя все ключи в менеджере паролей (используя KeePass 2.x) и экспортируя сокет, подходящий для использования в качестве $SSH_AUTH_SOCK
используя плагин KeeAgent. Смотрите этот пост ServerFault для другого подхода.
Но до сих пор нет успеха в доступе к конкурсу через Linux VM. Я попробовал следующий подход, но не смог:
- Сервер SSH установлен на хосте Windows в качестве промежуточного прыжка (я пробую Mobassh, но выбор не должен иметь значения - читайте дальше).
- Затем попробуйте выполнить удаленный
plink.exe
изнутри ВМ. Это похоже на наивный подходssh host1 ssh host2
что достаточно для моей цели. - Однако plink.exe не удалось получить доступ к любому ключу при запуске на Windows SSH-сервере. Запуск plink.exe прямо на
cmd
работает. Большинство доступных SSH-серверов, работающих на Windows, основаны на Cygwin. Выглядит очень похоже на этот отчет об ошибке в замазке / cygwin.
Примечание: возможно, похожий вопрос здесь, но я не использую Vagrant.
1 ответ
Кажется, оригинальный дизайн был совершенно неправильным. Было бы намного чище включить сервер sshd на каждой виртуальной машине с
AllowAgentForwarding yes
А потом сш в каждую ВМ. Таким образом, все виртуальные машины будут автоматически использовать агент аутентификации с хоста без необходимости устанавливать ключ ssh.