我正在用C#编写一个实用程序,它需要通过SSH自动连接到服务器(使用SSH.NET),这是一个基本没有痛苦的过程。服务器强制公钥身份验证(服务器是我的,我有完全的物理控制),这样只有少数人可以访问它。
在Windows上,我们都设置了Pageant来使用TortoiseGit与我的服务器进行通信,所以我只需要从Pageant读取已经解锁的内存私钥就可以了,而不是每次我想调试/运行实用程序时再次询问密码。
到目前为止,我发现的最接近的东西是这个来自Paramiko的Python模块,它检查Pageant窗口的存在,并公开发送和接收方法。这应该很容易移植到C#,但我想知道到底需要向Pageant发送什么命令才能接收密钥?
纵观Paramiko,这并不是显而易见的,而且我也找不到任何用Pageant编程工作的文档。答案不一定要在C#中,但如果答案是的话,它将使我不必为它编写一个小的实用程序。
发布于 2012-12-16 07:57:30
您不会从Pageant读取私钥,但请Pageant计算签名。这需要修改客户端的源代码。
在我们的SecureBlackbox产品的最新版本中,我们为.NET的SSH和SFTP客户端组件添加了Pageant和SSH代理支持,所以您可能想看看它们。
https://stackoverflow.com/questions/13896422
复制相似问题