~/.ssh/id_dsaパスフレーズを忘れたため、自分のファイル(DSAアルゴリズムのOpenSSH秘密鍵ファイル)にアクセスできなくなりました。
しかし、もともと私はgpg-agentそれをgpg-agentパスフレーズにインポートして保護しましたが、これは私が知っています。そして、私は今でもgpg-agentOpenSSH秘密鍵ファイルをに保存されているものを使用して再構築したいと思っていますが、秘密鍵は今でも問題なく機能していgpg-agentます。
gpg-connect-agent次の一連のコマンドを使用してツールを使用すると、秘密鍵を(16進数/ ASCII形式で)抽出できると思いますが、元のOpenSSH秘密鍵ファイル形式に再構築する方法がわかりません。
- 起動し
gpg-connect-agentて--hexオプション。 >プロンプトで、keyinfo --ssh-listコマンドを使用してキーの16進IDを取得します(正確には、キーの16進IDを示す3番目のフィールドです)。- で
>プロンプト、実行keywrap_key --export。 >プロンプトで、export_key <enter hex ID from step 2>またはを実行しますexport_key --openpgp <enter hex ID from step 2>。
パスフレーズの入力を求め、受け取って確認すると、gpg-connect-agentツールは数十行の16進数とASCIIコードを表示します。これは、インポートされた元のssh秘密鍵であると思われます。
次に、が表示されOK、操作が成功したことを示しています。
それが実際に私のssh秘密鍵であると仮定すると(「help export_key」に従って、画面にダンプされたものは、鍵のaeswrap-128暗号化バージョンです;おそらく私の既知のgpg-agentパスフレーズで暗号化されています)、方法に関するいくつかのヘルプその情報を従来のssh秘密鍵形式に変換することは大歓迎です(これを行うためのperl / python / shell / Cプログラムはおまけです!)。