Ed25519 形式の秘密鍵からパスフレーズを削除する

暗号化・デジタル署名

RSA 形式の秘密鍵からパスフレーズを消すのに使っていた openssl の方法だと Ed25519 形式のパスフレーズを削除できないようだったので、別の方法を調べてみました。


RSA - Wikipedia 形式の秘密鍵からパスフレーズを消すのに openssl を使ってましたけど、その方法だと Ed25519 形式で作成した秘密鍵から削除できないようだったので、別の方法を調べてみました。

RSA 形式の秘密鍵からパスフレーズを削除する

まず、これまで知っていた RSA 形式の秘密鍵からパスフレーズを削除する 方法から、紹介しておきます。

これについては、以前に Apache 2 で SSL 電子証明書のパスフレーズ入力を省略する の中で紹介したみたいに、次のように openssl コマンドを使って行っていました。

openssl rsa -in id_rsa.key -out id_rsa_nopass.key

このコマンドを実行して、現在のパスフレーズを入力し、続けて新しいパスフレーズのところで何も入れずに進めることで、秘密鍵からパスフレーズを取り除くことができていました。

Ed25519 形式だとエラー

ただ、これを Ed25519 形式の秘密鍵で行ったところ、次のようなエラーになりました。

openssl:Error: 'ed25519' is an invalid command.

Ed25519 形式の秘密鍵からパスフレーズを削除する

Ed25519 形式の秘密鍵からパスフレーズを削除するには ssh-keygen を使えば良いようでした。

ssh-keygen -p -f id_ed25519

普通にこうして、パスフレーズを変更する -p オプションを添えて、対象の秘密鍵を -f で指定すれば、これで、以前のパスフレーズを尋ねられて、そのあとに聞かれる新しいパスフレーズで何も入力しないことで、無事、パスフレーズを取り除くことができました。