Моя текущая настройка:
- 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
- Команда pgrep ищет запущенные агенты SSH. Если он запущен, он выведет идентификатор процесса и пропустит запуск другого агента.
- Если ничего не найдено, агент запускается, а переменные окружения экспортируются.
eval `ssh-agent`
запускает агент и оценивает его вывод, который устанавливает переменные средыSSH_AUTH_SOCK
иSSH_AGENT_PID
ssh-add
добавляет указанный секретный ключ к агенту, который первоначально запросит пароль секретного ключа.- Поскольку вышеупомянутые переменные устанавливаются только для запущенного процесса оболочки, необходимо установить их глобально, чтобы пользователь был доступен для других оболочек и других инструментов, не запущенных из оболочки. Это можно сделать с помощью команды setx из Windows. Я просто устанавливаю переменные в соответствии с теми, которые получены от агента.
После этого все готово, и агент работает и может использоваться, как только вы впервые запустили оболочку. Чтобы быть уверенным, что агент запускается при запуске Windows, вы также можете добавить средство запуска оболочки в автозапуск Windows.