1 - 請使用> = 2048位,在你的鑰匙被直到年〜2025年的保護。
以上是來自2012年,但我試圖爲Putty/Linux服務器連接創建ssh-rsa密鑰時遇到了它。
我剛剛解決了以適當格式創建公共ssh-rsa鍵的類似問題,以匹配PuttyGen。
對於Microsoft .NET 的RSACryptoServiceProvider它看起來像這樣
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(3072);
byte[] sshrsa_bytes = Encoding.Default.GetBytes("ssh-rsa");
byte[] n = RSA.ExportParameters(false).Modulus;
byte[] e = RSA.ExportParameters(false).Exponent;
string buffer64;
using (MemoryStream ms = new MemoryStream())
{
ms.Write(ToBytes(sshrsa_bytes.Length), 0, 4);
ms.Write(sshrsa_bytes, 0, sshrsa_bytes.Length);
ms.Write(ToBytes(e.Length), 0, 4);
ms.Write(e, 0, e.Length);
ms.Write(ToBytes(n.Length+1), 0, 4); //Remove the +1 if not Emulating Putty Gen
ms.Write(new byte[] { 0 }, 0, 1); //Add a 0 to Emulate PuttyGen (remove it not emulating)
ms.Write(n, 0, n.Length);
ms.Flush();
buffer64 = Convert.ToBase64String(ms.ToArray());
}
string pubssh = string.Format("ssh-rsa {0} generated-key", buffer64);
你可以看到我的我用於測試&膩子創源代碼的鏈接私鑰https://www.cameronmoten.com/2017/12/21/rsacryptoserviceprovider-create-a-ssh-rsa-public-key/
我在微軟工作,但這不是微軟的個人答案。
原貼的BouncyCastle的(Link)
你不必提你在哪裏工作,因爲它沒有任何關係的問題。除非另有說明,否則任何答案都是私人的。 – Hexfire