Настройка агента SSH в Windows с помощью cygwin

5594
shillner

Я создал этот вопрос как напоминание для меня, так как обычно я настраиваю SSH-агента только раз в несколько лет.

Итак, как можно настроить SSH-агент под Windows, если предполагается использование оболочки типа linux?

4

2 ответа на вопрос

6
shillner

Моя текущая настройка:

  • Windows 10 Pro
    • также должен работать со старыми версиями Windows, которые предоставляют команду setx (Win7)
  • Оболочка Бабун (зш)
    • основан на Cygwin

Что я сделал:

Я решил добавить команды запуска в файл .zshrc, чтобы он запускался каждый раз, когда я запускаю новую оболочку. Итак, вот команды:

# startup of the ssh-agent AGENT_PID=$(pgrep -x ssh-agent) if [ $? -ne 0 ]; then echo "~/.zshrc: Starting SSH Agent!"  eval `ssh-agent` && ssh-add ~/.ssh/id_rsa setx SSH_AUTH_SOCK $SSH_AUTH_SOCK setx SSH_AGENT_PID $SSH_AGENT_PID  echo "~/.zshrc: SSH Agent running (PID: $SSH_AGENT_PID)" else echo "~/.zshrc: SSH Agent already running (PID: $AGENT_PID)" fi 
  1. Команда pgrep ищет запущенные агенты SSH. Если он запущен, он выведет идентификатор процесса и пропустит запуск другого агента.
  2. Если ничего не найдено, агент запускается, а переменные окружения экспортируются.
    1. eval `ssh-agent`запускает агент и оценивает его вывод, который устанавливает переменные среды SSH_AUTH_SOCKиSSH_AGENT_PID
    2. ssh-add добавляет указанный секретный ключ к агенту, который первоначально запросит пароль секретного ключа.
    3. Поскольку вышеупомянутые переменные устанавливаются только для запущенного процесса оболочки, необходимо установить их глобально, чтобы пользователь был доступен для других оболочек и других инструментов, не запущенных из оболочки. Это можно сделать с помощью команды setx из Windows. Я просто устанавливаю переменные в соответствии с теми, которые получены от агента.

После этого все готово, и агент работает и может использоваться, как только вы впервые запустили оболочку. Чтобы быть уверенным, что агент запускается при запуске Windows, вы также можете добавить средство запуска оболочки в автозапуск Windows.

Возможно, вы захотите отложить добавление ключа SSH к агенту, пока вы не используете ключ в первый раз. Сделайте это, не вызывая `ssh-add` в сценарии RC оболочки, и вместо этого добавьте` AddKeysToAgent yes` в конфигурацию SSH. schlimmchen 7 лет назад 1
0
Shadowmak

для меня то, что сработало, это следовать настройке Oracle cygwin ssh [1]. Оттуда вас интересует установка Cygwin, а затем настройка SSH. Я использую эту настройку в работе для всех видов КС для подключения к машинам и проведения там тестов. Вы можете выполнять большинство команд Linux, а также использовать команды Windows, что довольно круто.

В основном оболочка Linux в Windows :-)

Ура,

Мартин

[1] https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC150

Привет, спасибо за ответ, но это было не совсем то, что я искал. Хотя это тоже интересно. shillner 7 лет назад 0