Я создал этот вопрос просто как напоминание для себя, поскольку обычно я настраиваю агент SSH только раз в несколько лет.
Итак, как можно настроить агент SSH в Windows, предполагая использование среды оболочки, подобной Linux?
решение1
Моя текущая настройка:
- Windows 10 Профессиональная
- также должно работать со старыми версиями 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
- Команда pgrep ищет запущенные агенты SSH. Если один запущен, она выведет идентификатор процесса и пропустит запуск другого агента.
- Если ничего не найдено, агент запускается и экспортируются переменные среды.
eval `ssh-agent`
запускает агент и оценивает его вывод, который устанавливает переменные средыSSH_AUTH_SOCK
иSSH_AGENT_PID
ssh-add
добавляет указанный закрытый ключ к агенту, который изначально запросит парольную фразу закрытого ключа.- Поскольку вышеупомянутые переменные устанавливаются только для запущенного процесса оболочки, необходимо установить их глобально, чтобы пользователь был доступен для других оболочек и других инструментов, не запущенных из оболочки. Это можно сделать с помощью команды setx из Windows. Я просто устанавливаю переменные в соответствии с теми, которые получены от агента.
После этого все готово, и агент запущен и готов к использованию сразу после первого запуска оболочки. Чтобы быть уверенным, что агент запускается вместе с запуском Windows, вы также можете добавить загрузчик оболочки в автозапуск Windows.
решение2
Для меня сработало то, что я следовал настройке Oracle cygwin ssh [1]. Оттуда вы заинтересованы в установке Cygwin, а затем в настройке SSH. Я использую эту настройку в работе для всех видов QE для подключения к машинам и проведения там тестов. Вы можете выполнять большинство команд Linux, а также использовать команды Windows, что довольно круто.
По сути это оболочка Linux в Windows :-)
Ваше здоровье,
Мартин
[1]https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC150