取决于你有多少时间。如果您知道 C,那么最安全的方法是使用 gdb 连接到 ssh-agent 进程(必须是 root)并打印关键数据。身份密钥存储在一个名为 idtable 的数组中,该数组包含一个身份链接列表。因此,您可以打印 BIGNUM 数据(如 (1) 中所定义),例如:
(gdb) call BN_bn2hex(idtable[2]->idlist->tqh_first->key->rsa->n)
Run Code Online (Sandbox Code Playgroud)
其中数字 2 是版本(您可能需要 2),最后一个元素是 BIGNUM 之一(其余是引擎、e、d、p、q、dmp1、dmq1、iqmp)。
现在要使用这些数据,您需要编写一个小型实用程序,在其中定义 RSA 结构(如 (1) 中定义)并填充它们。可能您可以编写另一个实用程序来自动执行此操作,但是您需要更多时间,您可以手动打印数据。然后你用上面的 RSA 数据调用 PEM_write_RSAPrivateKey (2) 函数,你就有了一个新的未加密的rsa 文件。
抱歉没有更多细节,但如果你有时间,它可以作为一个起点。
(1) /usr/include/openssl/rsa.h
(2) 请参阅 pem(3) 的手册页
归档时间: |
|
查看次数: |
2134 次 |
最近记录: |