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. Вот требования:

  1. Windows host can ssh to remote server and can use git through ssh.
  2. Linux VM can ssh to remote server and can use git through ssh.
  3. 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.

Другие вопросы по тегам