从Pageant中读取私有SSH密钥

时间:2012-12-15 21:34:52

标签: c# ssh ssh-keys ssh-agent pageant

我正在用C#编写一个实用程序,需要通过SSH自动连接到服务器(使用SSH.NET),这是一个非常无痛的过程。服务器强制公钥认证(服务器是我的,我有完整的物理控制),所以只有少数人可以访问它。

在Windows上,我们都设置了使用TortoiseGit与我的服务器进行通信的Pageant,因此我只需从Pageant读取已经解锁的内存中私钥而不是每次都要求输入密码我想调试/运行实用程序的时间。

到目前为止,我发现最接近的是this Python module from Paramiko,它检查是否存在Pageant窗口并公开发送和接收方法。这应该很容易移植到C#,但我想知道我需要发送什么命令给Pageant接收密钥?

通过Paramiko查看,这并不是很明显,我找不到任何类型的以编程方式使用Pageant的文档。答案不一定是在C#中,但如果它们是,它将使我不必为它编写一个小实用程序。

1 个答案:

答案 0 :(得分:2)

您没有从Pageant读取私钥,但要求Pageant计算签名。这需要修改客户端的源代码。

在最新版本的SecureBlackbox产品中,我们为.NET的SSH和SFTP客户端组件添加了Pageant和ssh-agent支持,因此您可能需要查看它们。