openssh в Windows 7, запустите ssh-add один раз для всех экземпляров cmd

openssh в Windows 7, запустите ssh-add один раз для всех экземпляров cmd

Я установил 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 и т. д., без какой-либо настройки.sshgit

Вы можете найти это здесь: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

Связанный контент