4

Я установил openSSH как часть последнего дистрибутива Cygwin. Моя цель - использовать ssh-agent из собственной оконной консоли (cmd) для входа в систему без пароля на различных компьютерах с Linux.

Я сгенерировал ключи и загрузил их в соответствующие каталоги на удаленных хостах, и все работает отлично.

Единственная проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я открываю новый cmd, я должен запускать 'ssh-add', вводить фразу-пароль, и затем я могу войти без пароля на удаленных хостах. Есть ли способ преодолеть эту проблему? Идеальным решением было бы запустить ssh-add только один раз.

К вашему сведению: я открываю cmd в качестве аргумента для ssh-agent: 'ssh-agent cmd'

2 ответа2

3

Я фактически создал инструмент под названием «ssh-agent-helper», который вызывает ssh-agent и делает его доступным глобально, так что вы можете использовать ssh-add , ssh или git из любого терминала, например CMD, Bash, PowerShell и т.д., Без какой-либо настройки. ,

Вы можете найти его здесь: https://github.com/raeesbhatti/ssh-agent-helper

-1

Вы не сможете запустить ssh из собственного окна команд. Вам нужно будет запустить окно Cygwin bash, чтобы запустить любой из бинарных файлов Cygwin.

Сказав, что в "окнах" Cygwin bash вам нужно сохранить выходные данные 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .