8

ssh-agent 有一个协议,可以将数据发送给它以由特定的私钥签名:

http://api.libssh.org/rfc/PROTOCOL.agent

在 Linux 中,使用 ssh-agent,您可以打开一个 Unix 域套接字到 SSH_AUTH_SOCK 并将数据包发送到该套接字。但是,Windows 没有 Unix 域套接字。

有任何想法吗?

谢谢!

4

2 回答 2

8

putty 和 pageant 之间的通信是使用 WIN32 API 在共享内存上完成的。我已经使用 JNA 在 Java 中实现了该协议。如果你对它的协议感兴趣并想了解它是如何在 Windows 上运行的,下面的文件可能会有用,

https://github.com/ymnk/jsch-agent-proxy/blob/master/jsch-agent-proxy-pageant/src/main/java/com/jcraft/jsch/agentproxy/connector/PageantConnector.java

于 2012-09-19T05:12:52.800 回答
4

如果您在 C 中实现协议,您可能会参考规范的 PuTTY 实现。如果您在 Python 中实现它,paramiko 项目实现了 Putty Pageant 协议

就我所知,协议是相同的,但传输方式不同,使用共享内存而不是套接字。

于 2012-11-23T17:54:02.957 回答