web-dev-qa-db-ja.com

秘密鍵のパスフレーズを変更するにはどうすればよいですか?

既存の公開鍵と秘密鍵のペアがあります。秘密鍵はパスワードで保護されており、暗号化はRSAまたはDSAのいずれかです。これらのキーは、ssh-keygenを使用して生成し、通常~/.sshに格納する種類です。

秘密鍵のパスワードを変更したいのですが。標準のUnixシェルでどうすればいいですか?

また、パスワードを削除する方法を教えてください。空に変更しますか?

302
kch

デフォルトのDSAキーのパスフレーズを変更するには:

$ ssh-keygen -p -f ~/.ssh/id_dsa

次に、プロンプトで新旧のパスフレーズ(2回)を入力します。 (RSAキーがある場合は~/.ssh/id_rsaを使用してください。)

man ssh-keygenの詳細:

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -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.
[...]
392
Mike Mazur