web-dev-qa-db-ja.com

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

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

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

4
B T

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

 ----- BEGIN RSA PRIVATE KEY ----- 
 Proc-Type:4、ENCRYPTED 
 DEK-Info:DES-EDE3-CBC、157A04D5AE43F45B 
 
 NiGUXnTOhATzg4dGvyXs8rzetF7KpplJJIKrZvQunXuVcZhVS + 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
1
user1686