Как добавить пароль в закрытый ключ OpenSSH, созданный без пароля?
213
Я сгенерировал закрытый ключ OpenSSH, используя puttygen (и экспортировал его в формат OpenSSH). Как я могу поставить пароль на этот существующий ключ (я знаю, как создать новый ключ с паролем)?
Если вы получаете Bad passphraseна id_ed25519ключ , но пароль правильно, то вы, вероятно , с помощью нижнего уровня , ssh-keygenчтобы управлять им.
jww
Ответы:
350
Попробуйте команду ssh-keygen -p -f keyfile
Со страницы руководства ssh-keygen
-p Requests changing the passphrase of a private key file instead of
creating a new private key. The program will prompt for the file
containing the private key, for the old passphrase, and twice for
the new passphrase.
-f filename
Specifies the filename of the key file.
Для тех, кто хочет знать, что такое -f: он определяет входной файл.
Neikos
4
//, @sigjuice, не могли бы вы опубликовать пример, как $ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsa? Это может помочь людям, которые не знают, как определить разницу между открытым и закрытым ключами, и помочь им быстрее промокнуть.
Натан Басанезе
По какой-то причине в MacOS 10.14 это не форматирует файл с Proc-Type: 4,ENCRYPTEDзаголовком, что несовместимо с некоторыми приложениями, проверяющими парольную фразу. Попробовав несколько способов заставить его работать, самый простой способ обойти это - просто сделать то же самое в контейнере Docker с Ubuntu, а затем скопировать ключ обратно на мой Mac.
ryanbrainard
38
Используйте параметр -p для ssh-keygen. Это позволяет вам менять пароль, а не генерировать новый ключ.
Измените пароль, как показывает sigjuice:
ssh-keygen -p -f ~/.ssh/id_rsa
Необходимый пароль будет новым паролем. (Предполагается, что вы добавили открытый ключ ~/.ssh/id_rsa.pubв свои файлы author_keys.) Протестируйте с помощью ssh:
ssh -i ~/.ssh/id_rsa localhost
Вы можете иметь несколько ключей с разными именами для разных целей.
//, не могли бы вы показать пример, и как проверить, что опция работает, @BillThor?
Натан Басанезе
Я не понимаю. Фраза-пароль установлена, я вижу, когда я пытаюсь изменить это снова. Но когда я пытаюсь войти на удаленный сервер, он не запрашивает этот пароль, почему?
Лука
1
Все хорошо. Он спрашивает один раз за сеанс :) Не знал этого.
Лука
Значит ли это, что вы должны выйти и снова войти? Закрытие окна терминала и его повторное открытие не работает для меня.
Саймон Х
Вы можете напечатать, ssh-add -Dчтобы удалить вашу кэшированную личность. Затем попробуйте подключиться снова, и он попросит вас ввести пароль. Используйте ssh-add -lдля просмотра списка ваших кэшированных идентификаторов.
Bad passphrase
наid_ed25519
ключ , но пароль правильно, то вы, вероятно , с помощью нижнего уровня ,ssh-keygen
чтобы управлять им.Ответы:
Попробуйте команду
ssh-keygen -p -f keyfile
Со страницы руководства ssh-keygen
Пример:
источник
$ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsa
? Это может помочь людям, которые не знают, как определить разницу между открытым и закрытым ключами, и помочь им быстрее промокнуть.Proc-Type: 4,ENCRYPTED
заголовком, что несовместимо с некоторыми приложениями, проверяющими парольную фразу. Попробовав несколько способов заставить его работать, самый простой способ обойти это - просто сделать то же самое в контейнере Docker с Ubuntu, а затем скопировать ключ обратно на мой Mac.Используйте параметр -p для ssh-keygen. Это позволяет вам менять пароль, а не генерировать новый ключ.
Измените пароль, как показывает sigjuice:
Необходимый пароль будет новым паролем. (Предполагается, что вы добавили открытый ключ
~/.ssh/id_rsa.pub
в свои файлы author_keys.) Протестируйте с помощью ssh:Вы можете иметь несколько ключей с разными именами для разных целей.
источник
ssh-add -D
чтобы удалить вашу кэшированную личность. Затем попробуйте подключиться снова, и он попросит вас ввести пароль. Используйтеssh-add -l
для просмотра списка ваших кэшированных идентификаторов.Вы также можете использовать
openssl
:см .: https://security.stackexchange.com/a/59164/194668
источник