我正在用 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 支持,因此您可能想了解一下它们。
关于c# - 从 Pageant 读取 SSH 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896422/