以编程方式生成 SSH 密钥对(c# windows)

Posted

技术标签:

【中文标题】以编程方式生成 SSH 密钥对(c# windows)【英文标题】:Programmatically generate SSH Keypairs ( c# windows ) 【发布时间】:2018-08-20 21:51:02 【问题描述】:

我希望通过我的网络应用程序(托管在 Windows 机器中)中的代码生成开放 SSH 格式的 ssh 密钥对,而不必使用 puttygen 手动创建它。

所以,到目前为止,我还没有找到任何可以做到这一点的免费库。 (似乎没有与 Windows 等效的 ssh-keygen。)我知道 Cygwin 路线,但我试图避免这种情况,因为这将涉及必须在托管应用程序的任何服务器上安装 cygwin,使其不理想.

我有哪些选择?我是否必须从 putty-gen-source 中提取 key-gen 函数并在 c# 中重新编写它?

【问题讨论】:

【参考方案1】:
RSA rsa = new RSACryptoServiceProvider(2048);

string publicPrivateKeyXML = rsa.ToXmlString(true);
string publicOnlyKeyXML = rsa.ToXmlString(false);

然后您可以使用 XML 阅读器或 XML 文档解析 XML 以获得您想要的值。

【讨论】:

以上是关于以编程方式生成 SSH 密钥对(c# windows)的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式从 .NET 中的注册表中删除 Windows 产品密钥?

从 windows 生成 gitlab ssh 密钥

Git ssh_key的生成

Java生成的RSA密钥对,用C#加密解密,怎么弄

Linux主机生成密钥对

SSH密钥登录