質問

ssh-add -l SSHエージェントに3つのRSAキーが追加されていることを表示します。

ssh-add -L それらのパブリックキーを表示します。

プライベートキーも入手して、ファイルに保存できるようにするにはどうすればよいですか?それとも、これが不可能であることは設計上ですか?それではどのように機能しますか?

SSH-Agentは、秘密鍵を使用して操作を行うように求められますか?私のために番号を暗号化/解読するように頼むにはどうすればよいですか?

このためにコードを記述する必要があることは問題ありません(プログラミング言語は重要ではありません)が、既存のツールまたはライブラリを使用することをお勧めします。

役に立ちましたか?

解決

SSHとSSH-Agentの間のプロトコルを使用して秘密鍵を取得したり暗号化を実行することはできませんが、SSH-Agentのメモリをダンプすることで秘密鍵を取得することは可能です。 Linuxでは、メモリダンプを行うにはルートである必要があります。

SSH-Agentがどのように機能するかについて非常に良い説明を見つけました。 http://www.unixwiz.net/techtips/ssh-agent-forwarding.html 。これは私の質問のいくつかに部分的に答えます。

  • エージェントのより巧妙な側面の1つは、ユーザーのアイデンティティ(より正確には、秘密鍵の所有)を確認する方法です。

  • エージェント転送のセキュリティ利点の1つは、暗号化されたフォームであっても、ユーザーの秘密キーがリモートシステムやワイヤーに表示されないことです。

したがって、SSHクライアントとSSH-Agentの間のプロトコルは、SSH1またはSSH2でSSH-Agentからプライベートキーを取り出す方法を提供しません。

ただし、ルートとして、SSH-Agentのメモリダンプを取得し、そこから秘密鍵を抽出しようとすることができます。 https://blog.netspi.com/stealing-unencrypted-ssh-agent-keys-from Memory まさにそれを行い、そのページのコメントセクションに記載されている他のソフトウェアがあります。ただし、そのページのソフトウェアはDebian Busterで私には機能しませんでした。メモリダンプにはキーが含まれていませんでしたが、 ssh-add -l RSAキーを表示しました。

他のヒント

私の場合、私は誤って.sshフォルダーを削除しましたが、キーはロードされています。しかし、SSH-ADDからそれらを回復できないため、ファイルリカバリソフトウェアを使用する必要がありました。

おそらくそうする必要はありません。おそらくあなたはただ公開キーが欲しいだけです:

ssh-add -L > ~/.ssh/id_rsa.pub
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top