如何在C#应用程序中生成SSH 2 RSA密钥?

如何在C#应用程序中生成SSH 2 RSA密钥?,c#,.net,ssh,rsa,putty,C#,.net,Ssh,Rsa,Putty,我想编写一个应用程序,该应用程序将生成SSH 2 RSA公钥和私钥 我想得到的钥匙作为格式的腻子钥匙生成器可以生成 在ChilKat的帮助下,我还可以生成公钥和私钥,但我不知道如何获得这种格式 是否有任何样本可以获得这种格式的钥匙,或者我遗漏了什么 多谢各位 我找到了一个解决方案: 从Nuget Gallery下载。 借助此库,您可以通过以下方式生成RSA密钥对: public ISshKeyPair RsaKeyPair() { Chilkat.SshKey key = new Chi

我想编写一个应用程序,该应用程序将生成SSH 2 RSA公钥和私钥

我想得到的钥匙作为格式的腻子钥匙生成器可以生成

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

是否有任何样本可以获得这种格式的钥匙,或者我遗漏了什么

多谢各位

我找到了一个解决方案: 从Nuget Gallery下载。 借助此库,您可以通过以下方式生成RSA密钥对:

public ISshKeyPair RsaKeyPair()
{
   Chilkat.SshKey key = new Chilkat.SshKey();

   bool success;
   int numBits;
   int exponent;
   numBits = 2048;
   exponent = 65537;
   success = key.GenerateRsaKey(numBits, exponent);
   var sshKeyPair = new SshKeyPair();
   sshKeyPair.PublicKey = key.ToOpenSshPublicKey();
   sshKeyPair.PrivateKey = key.ToPuttyPrivateKey(false);
   if (!success) RsaKeyPair();
   return sshKeyPair;
}

干杯

SSH密钥格式相当复杂;若你们想自己实现它,那个么答案可能是一个好的开始

但是,实际上其他人已经完成了这项工作,并创建了一个用于生成SSH密钥的NuGet包:。目前,该软件包适用于.NET Framework和.NET标准。源代码在上提供

示例代码:

static void Main(字符串[]args)
{
int键位=2048;
字符串keycoment=“mykey”;
var keygen=新的SshKeyGenerator.SshKeyGenerator(密钥位);
Console.WriteLine(keygen.ToPrivateKey());
Console.WriteLine(keygen.ToRfcPublicKey(keyComment));
}
生成(为了可读性而缩短)

----开始RSA私钥-----
MIIEpAIBAAKCAQEA7ejxsqTKLMLht6HVC57l59mMzQNIVdeMaPzxM14VYjkyU1rg
...
L4NAI1BCgGpSC+IY3QUVWK8GVPHVSZNROQJ97UUHX0WYSEDPZJVQW==
-----结束RSA私钥-----
ssh rsa aaaab3nzac1yc2eaaaaadaqabaabaaqd…nFX7Rhou4OdkDGA1 mykey

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

请阅读一些提示。我认为Chilkat是付费软件。你能提供另一种免费源代码的方法吗?谢谢:)