C# 将SSH2公钥转换为RSACryptServiceProvider

C# 将SSH2公钥转换为RSACryptServiceProvider,c#,openssl,rsa,rsacryptoserviceprovider,C#,Openssl,Rsa,Rsacryptoserviceprovider,我有一台Windows计算机,它需要(以编程方式)连接到Linux计算机。我有那台机器的公钥,但我似乎无法在C中使用它,使用rsacyptoserviceprovider。我得到一个例外: Invalid syntax on line 10. 在这一行: rsa.FromXmlString(File.ReadAllText(PublicKeyFile)); 我的公钥(在Linux机器上使用openSSL提供和生成)如下所示: ——开始SSH2公钥---- 主题:服务器 评论:“公钥” Mod

我有一台Windows计算机,它需要(以编程方式)连接到Linux计算机。我有那台机器的公钥,但我似乎无法在C中使用它,使用
rsacyptoserviceprovider
。我得到一个例外:

Invalid syntax on line 10.
在这一行:

rsa.FromXmlString(File.ReadAllText(PublicKeyFile));
我的公钥(在Linux机器上使用openSSL提供和生成)如下所示:

——开始SSH2公钥----
主题:服务器
评论:“公钥”
ModBitSize:2048
aaaab3nzac1kc3maaebaogcqut33liu3z9wji6gwzuwxxrmgaki4/UZDbpNLWQW2
Wov2zMkEo/oHb2eSnAbYhBSCSlrMrWzukJboww8PGoSmcQej/W75Ag8RytwDEIjv。。。。。。。
要让我的C#库使用此密钥,我需要做什么?它是由OpenSSL生成的。我也尝试过使用puttygen的密钥,但它们不适用于Microsoft库。我不能要求他们使用我通过

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.KeySize = 2048;
rsa.ToXmlString(false)

我搜索了论坛,但没有找到解决方案。如何在我的C#代码中使用给定的公钥?

因此,您展示了一些代码来读取XML密钥,而密钥显然不在XML中。。。也许你应该尝试读取SSH2密钥的方法?这是我的全部问题。RSACryptServiceProvider没有任何读取或识别非XML密钥的方法。在我看来,一个显而易见的解决方案是1)读取SSH2密钥,2)将其转换为XML。请尝试执行此操作,如果失败,请返回。否则,这个问题就归结为一个代码请求,这是离题的。不是真的,我没有要求任何人提供代码片段。我相信这已经有人解决了。我不是要求任何人编写代码,而是要求编写一个库或一种方法来实现这一点。读出密钥并转换为XML——这并不简单;我敢肯定,在某些情况下,.NET堆栈需要使用OpenSSL或其他formatsOK生成的密钥,这是公平的,我想,尽管我认为这个问题问得有点多。读取/使用SSH2密钥确实需要一个库或类似的库。同样,在读取密钥后,您可能没有RSACryptServiceProvider。