Как ввести ssh ключ пароля раз и навсегда

Я настроил установку пароля меньше для ssh, который использует аутентификацию с открытым ключом для соединения с желаемым удаленным сервером, все работало вполне хорошо.

Я использую пароль для разблокирования закрытого ключа, с помощью этого решения — проблема - это, спрашивает пароль каждый раз, я запускаю свою систему.

Я нашел, что это было неприятно, я хочу ввести его только раз и навсегда так в следующий раз, когда я загружаю сессию, я не должен буду вводить его снова, есть ли что-то как кэшируемый ключ, который держит мой пароль, и работы через сессию (также переживают перезагрузку)?

Было бы возможно достигнуть всего этого при сохранении моего ssh пароля неповрежденным?

1
задан 4 November 2019 в 10:55

3 ответа

Выполненный ssh-keygen -p. Это позволит Вам удалять набор пароля на ключе. Если никакой пароль не установлен, это хранится в открытом тексте, и можно использовать его, не разблокировав его:

$ ssh-keygen -p 
Enter file in which the key is (/home/user/.ssh/id_rsa): 
Enter old passphrase: 
Key has comment ''
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.

Просто нажмите Enter при запросе пароль не установить пароль. После этого можно использовать ключ свободно.

7
ответ дан 3 December 2019 в 06:19

Вы хотите использовать keychain.

keychain программа управляет экземпляром ключевой программы ssh-agent кэша. Когда ssh-agent запускается, две переменные среды создаются, чтобы быть eval'd. Обычно, когда оболочка закрывается, где ssh-agent был запущен, те переменные среды потеряны. keychain программа отслеживает те переменные через логины и предоставляет сценарии оболочки в ~\.keychain каталог.

существует несколько способов работать keychain, один метод вручную из командной строки. Каждый раз Вы запускаете оболочку, используете:

eval `keychain --eval`

Это найдет ssh-agent, если это будет работать, и запустите его, если это не. Так или иначе использование оценки на [1 113] установит необходимые переменные среды, где можно добавить использование ключей:

ssh-add <private-keyfile>

, Если private-keyfile имеет пароль, Вам предложат ввести тот пароль во время выполнения [1 115], но целых ssh-agent работает, который будет прошлым разом, когда необходимо ввести пароль для закрытого ключа.

, поскольку оценка [1 117] наборы SSH_AUTH_SOCK переменная среды, любое выполнение [1 119] будет использовать ssh-agent для выполнения аутентификации.

Другое предложение состоит в том, чтобы добавить keychain выполнение к Вашему .bashrc файл, как предложено в [1 126] этот ответ StackExchange .

Для завершения keychain просто вводят команду:

keychain --stop mine

или если Вы хотите снизить все экземпляры [1 124], введите команду:

keychain --stop all

Просто примечание, с помощью сервисов такой в качестве [1 125] побеждают безопасность файлов секретных ключей пароля путем хранения тех аутентифицируемых ключей в памяти. Это не безопасно, особенно с атаками по сторонним каналам памяти. Если Вы не интересуетесь ключевой безопасностью, простое решение состоит в том, чтобы удалить пароль на закрытом ключе, как предложено @vidarlo.

3
ответ дан 3 December 2019 в 06:19

Простой ответ является №
, Который побеждает цель (т.е. защита), если это поддержано через перезагрузки.
можно однако выдержать его через сессии входа в систему и даже через несколько терминалов.

  • , Если Вы хотите выдержать через сессии входа в систему, но в порядке для ввода пароля однажды на терминал, затем добавьте eval $(ssh-add) к к .bash_profile

  • , Если Вы хотите сделать это однажды на системную перезагрузку, связку ключей установки, изменить Ваш ~/.ssh/config файл, чтобы добавить ключи к связке ключей (AddKeysToAgent yes) и сделать вышеупомянутый шаг также.

1
ответ дан 3 December 2019 в 06:19

Другие вопросы по тегам:

Похожие вопросы: