我正在用 C# 编写一个实用程序,它需要通过 SSH(使用 SSH.NET )自动连接到服务器,这是一个几乎没有痛苦的过程。服务器强制公钥认证(服务器是我的,我有完全的物理控制权),这样只有少数人可以访问它。
在 Windows 上,我们都设置了 Pageant 以使用 TortoiseGit 与我的服务器进行通信,因此我只需从 Pageant 读取已经解锁的内存中私钥而不是每隔一段时间再次询问密码就有意义了我想调试/运行该实用程序的时间。
到目前为止,我找到的最接近的是 this Python module from Paramiko检查选美窗口是否存在并公开发送和接收方法。这应该很容易移植到 C#,但我想知道我到底需要向 Pageant 发送什么命令来接收 key ?
通过 Paramiko 查看,这不是很明显,而且我找不到任何类型的文档以编程方式使用 Pageant。答案不一定是用 C# 写的,但如果是的话,我就不必为它编写一个小实用程序了。
您不从 Pageant 读取私钥,而是要求 Pageant 计算签名。这需要修改客户端的源代码。
在我们的 SecureBlackbox 产品的最新版本中,我们为 .NET 的 SSH 和 SFTP 客户端组件添加了 Pageant 和 ssh-agent 支持,因此您可能想看看它们。
我是一名优秀的程序员,十分优秀!