17

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

ssh-add -Lそれらの公開鍵を表示します。

ファイルに保存できるように、秘密鍵も取得するにはどうすればよいですか? それとも、これが不可能なのは設計上のものですか? それはどのように機能しますか?

秘密鍵を使用して操作を行うように ssh-agent に依頼できますか? 番号を暗号化/復号化するように依頼するにはどうすればよいですか?

このためにコードを書かなければならないことは問題ありませんが (プログラミング言語は関係ありません)、既存のツールまたはライブラリを使用することをお勧めします。

4

4 に答える 4

12

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

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

  • エージェントのより巧妙な側面の1つは、その秘密鍵をだれにも明かさずに、ユーザーのID(より正確には秘密鍵の所持)を検証する方法です。

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

したがって、SSHクライアントとssh-agentの間のプロトコルは、SSH1またはSSH2でssh-agentから秘密鍵を取得する方法を提供しません。

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

于 2010-06-04T18:26:56.737 に答える