パスワードなしで生成されたOpenSSH秘密鍵にパスワードを追加するにはどうすればよいですか?


213

puttygenを使用してOpenSSH秘密鍵を生成しました(そしてOpenSSH形式でエクスポートしました)。この既存のキーにパスワードを設定するにはどうすればよいですか(パスワードを使用して新しいキーを生成する方法を知っています)?


13
このコメントが表示された場合は、回答の1つを承認済みとしてマークするか、見逃したものについてコメントしてください。ありがとう!
ベンジャミンアトキン

1
:追加、変更または削除と同じであるstackoverflow.com/questions/112396/...、変更の可能性と同じ:serverfault.com/questions/50775/...
チロSantilli郝海东冠状病六四事件法轮功

キーを取得Bad passphraseしてid_ed25519もパスワードが正しい場合は、おそらくssh-keygenそれを管理するために下位レベルを使用しています。
jww 2015

回答:


350

コマンドを試してください ssh-keygen -p -f keyfile

ssh-keygenのmanページから

 -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.

例:

ssh-keygen -p -f ~/.ssh/id_rsa

5
-fとは何かを知りたい場合:入力ファイルを指定します。
ネイコス

4
//、@ sigjuice、のような例を投稿していただけます$ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsaか?これは、公開鍵と秘密鍵の違いを見分ける方法がわからない人を助け、足を早く濡らすのに役立ちます。
Nathan Basanese 16

何らかの理由で、MacOS 10.14では、これはProc-Type: 4,ENCRYPTEDヘッダー付きのファイルをフォーマットしません。これは、パスフレーズをチェックする一部のアプリケーションと互換性がありません。それを機能させるためにいくつかの方法を試した後、それを回避する最も簡単な方法は、Ubuntuを実行しているDockerコンテナー内でこれと同じことを行い、キーをMacにコピーし直すことでした。
ryanbrainard

38

ssh-keygenに-pオプションを使用します。これにより、新しいキーを生成するのではなく、パスワードを変更できます。

sigjuiceが示すようにパスワードを変更します。

ssh-keygen -p -f ~/.ssh/id_rsa

必要なパスワードは新しいパスワードになります。(これは、公開鍵~/.ssh/id_rsa.pubをauthorized_keysファイルに追加したことを前提としています。)sshでテストします。

ssh -i ~/.ssh/id_rsa localhost

用途に応じて名前の異なる複数のキーを持つことができます。


//、例と、オプションが機能したことを確認する方法を教えていただけますか、@ BillThor?
Nathan Basanese 16

理解できません。パスフレーズが設定されました。もう一度変更しようとすると表示されます。しかし、リモートサーバーにログインしようとすると、このパスフレーズのパスワードを要求されません。なぜですか?
ルカ

1
大丈夫だよ。それはセッションごとに一度尋ねます:)それを知りませんでした。
ルカ、

これは、ログアウトして再度ログインする必要があることを意味しますか?ターミナルウィンドウを閉じて再度開くことはできません。
Simon H

入力ssh-add -Dして、キャッシュされたIDを削除できます。次に、再度接続を試行すると、パスワードの入力を求められます。ssh-add -lキャッシュされたIDのリストを表示するために使用します。
Scott Nedderman

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.