ppk をパスフレーズで暗号化された openSSH 秘密鍵に変換する方法

ppk をパスフレーズで暗号化された openSSH 秘密鍵に変換する方法

PuttyGen で秘密鍵をエクスポートしたとき、設定したパスフレーズが openSSH バージョンでも使用されていると想定していました。入力したパスフレーズが機能していないようです。パスフレーズ付きの openSSH 形式で秘密鍵をエクスポートする正しい方法は何ですか?

エクスポートした SSH キーを Linux に転送するために、それを nano に貼り付けて、SSH 追加しようとしました。パスフレーズの入力を求められますが、入力したパスフレーズは受け入れられません。ただし、PuttyGen ではそのパスフレーズで問題なくインポートされます。

答え1

Windows PuTTYgen の「OpenSSH キーのエクスポート」するキーを 3DES-CBC で暗号化します。パスフレーズが空でない場合は、出力ファイルに次のように表示されます。

-----RSA 秘密鍵の開始-----
プロセスタイプ: 4、暗号化済み
DEK 情報: DES-EDE3-CBC,157A04D5AE43F45B

ニグントーアッツグ4dGvyXs8rzetF7KpplJJIKrZvQunXuVcZhVS+NTpnTgwJb+zOCm
...

私は過去 4 年間にわたって、さまざまなバージョンでこれをテストしてきました。パスフレーズが空の場合、「よろしいですか?」というプロンプトも表示されます。

Linux でもputtygen、変換時には常に同じパスフレーズが使用されます。


RSAおよびDSAキーの場合、OpenSSHはOpenSSLと同じ「生の」キー形式を使用します。したがって、3DES-CBCでは不十分な場合は、openssl再暗号化するためのコマンドライン ツール:

openssl rsa -aes-128-cbc < old.key > new.key

もちろん、Unix では OpenSSH 自体の方ssh-keygenが優れています。

ssh-keygen -p -f old.key

関連情報