Я установил openSSH как часть последнего дистрибутива cygwin. Моя цель — использовать ssh-agent из родной оконной консоли (cmd) для входа без пароля на различных машинах Linux.
Я сгенерировал ключи и загрузил их в соответствующие каталоги на удаленных хостах, и все работает нормально.
Единственная проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я открываю новый cmd, мне приходится запускать 'ssh-add', вводить парольную фразу, а затем я могу войти без пароля на удаленных хостах. Есть ли способ обойти эту проблему? Идеальным решением было бы запустить ssh-add только один раз.
fyi: я открываю cmd как аргумент ssh-agent: 'ssh-agent cmd'
решение1
На самом деле я создал инструмент под названием «ssh-agent-helper», который вызывает его ssh-agent
и делает доступным глобально, так что вы можете использовать его из любого терминала ssh-add
, например CMD, Bash, PowerShell и т. д., без какой-либо настройки.ssh
git
Вы можете найти это здесь:https://github.com/raeesbhatti/ssh-agent-helper
решение2
Вы не сможете запустить ssh из родного командного окна. Вам нужно будет запустить Cygwin bash "window", чтобы запустить любой из двоичных файлов Cygwin.
Сказав это, в Cygwin bash "windows" вам нужно сохранить вывод ssh-agent в файл, а затем передать этот файл в любой из скриптов входа, где вы хотите использовать кэшированные учетные данные. В первом "окне" выполните:
$ ssh-agent >your_save_file # Starts ssh-agent, saves shell variables
$ . your_save_file # Loads saved shell variables into current shell
$ ssh-add # Adds keys into ssh-agent
В каждом из остальных выполните:
$ . your_save_file
Все "окна" и дочерние процессы, запущенные после . your_save_file
выполнения команды, смогут использовать учетные данные, кэшированные в ssh-agent. Каждый раз, когда ssh-agent останавливается или уничтожается, или после перезагрузки системы, вам нужно будет снова запустить первый набор команд. Если вы сомневаетесь, доступны ли кэшированные учетные данные в конкретной оболочке, выполните
$ ssh-add -l # Show list of loaded keys in ssh-agent