2

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

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

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

通过 Paramiko,这并不是很明显,而且我找不到任何以编程方式使用 Pageant 的文档。答案不必在 C# 中,但如果是,我就不必为此编写一个小实用程序。

4

1 回答 1

2

您不会从 Pageant 读取私钥,而是要求 Pageant 计算签名。这需要修改客户端的源代码。

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

于 2012-12-16T07:57:30.857 回答