c# - 如何在 C# 应用程序中生成 SSH 2 RSA key ?

标签 c# .net ssh rsa putty

我想编写一个应用程序来生成 SSH 2 RSA 公钥和私钥。

我想获取 PuTTY key 生成器可以生成的格式的 key 。

enter image description here

在 ChilKat 的帮助下,我也可以生成公钥和私钥,但我不知道如何获得那种格式。

是否有任何示例可以获取该格式的 key ,或者我错过了什么?

非常感谢!

最佳答案

SSH key 格式相当复杂;如果您想自己实现,this , thisthis回答可能是一个好的开始。

然而,其他人实际上已经完成了这项工作并创建了一个用于生成 SSH key 的 NuGet 包:SshKeyGenerator .目前,该包同时适用于 .NET Framework 和 .NET Standard。源代码可在 GitHub 上获得.

示例代码:

static void Main(string[] args)
{
    int keyBits = 2048;
    string keyComment = "mykey";

    var keygen = new SshKeyGenerator.SshKeyGenerator(keyBits);

    Console.WriteLine(keygen.ToPrivateKey());
    Console.WriteLine(keygen.ToRfcPublicKey(keyComment));
}

生成(为了便于阅读而缩短)

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA7ejxsqTKLMLht6HVC57l59mMzQNIVdeMaPzxM14VYjkyU1rg
...
L4NAI1BCgGpSC+iY3QuVwK8GVphVSzNrOQj97Uuhx0WYsEdPzJvjQw==
-----END RSA PRIVATE KEY-----

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...nFX7Rhou4OdkDGA1 mykey

请注意,该软件包目前支持设置私钥密码。

关于c# - 如何在 C# 应用程序中生成 SSH 2 RSA key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25020017/

相关文章:

c# - 什么样的网络主机可以让你在上面运行爬虫?

javascript - 如何在 Jquery 中将 MVC 表单序列化为 JSON

c# - .NET开发人员如何看待条件运算符?

c# - 异常处理的良好实践设计模式

jsch1.4.8的Java Telnet Applet无法输入

python - 使用第三个系统在两台隔离机器之间建立 SSH 连接

c# - SqlCommand 参数添加与 AddWithValue

c# - .NET 2.0/C# 中泛型方法元数据的签名格式是什么?

.net - 通过 AMQPS 连接到 ActiveMQ Artemis 的 AMQPNetLite 客户端是否需要客户端存储客户端证书?

linux - 在 SSH 登录后加载一些别名