私のSSHキーを削除しました

私のSSHキーを削除しました

私はMac(OSX)を使用しています。

誤ってSSHキーを削除したが、まだコンピュータを再起動していないため、そのキーを使用してサーバーにアクセスできます。 ssh-agentがメモリに何らかの形であると思いますか?

ssh-agentでキーを取得する方法はありますか?パスワードなどをまだ覚えています。

答え1

時間がどれだけあるかによって異なります。 Cを知っている場合は、最も安全な方法はgdbを使用してssh-agentプロセス(ルートである必要があります)に接続してキーデータを印刷することです。 IDキーは、IDの関連付けられたリストを含むidtableという名前の配列に保存されます。したがって、次のように(1)で定義されているようにBIGNUMデータを印刷できます。

(gdb) call BN_bn2hex(idtable[2]->idlist->tqh_first->key->rsa->n)

数字2はバージョン(2が必要な場合があります)で、最後の要素はBIGNUMの1つです(他の要素はエンジン、e、d、p、q、dmp1、dmq1、iqmp)。

このデータを使用するには、RSA構造((1)で定義されているように)を定義して埋める小さなユーティリティプログラムを作成する必要があります。このタスクを自動的に実行するために別のユーティリティを作成することもできますが、時間がかかり、データを手動で印刷することもできます。次に、上記のRSAデータを使用してPEM_write_RSAPrivateKey(2)関数を呼び出すと、新しい結果が得られます。暗号化されていないrsaファイル。

詳しくはご提供できませんでした。時間があれば、これが始点になる可能性があります。

(1)/usr/include/openssl/rsa.h

(2) pem(3) のマニュアルページを参照してください。

答え2

いいえ、に保存された秘密鍵を取得する方法はありませんssh-agent。これはプロキシの目的に反するからです。コメントのプロンプトに従い、新しいコメントを作成することをお勧めします。

Macにはバックアップを提供するバックホールマシンはありませんか?それともどうやって削除しましたか?ゴミ箱には何もありませんか?

関連情報