c# – 支持密码短语rsa privatekeys的SSH库

c# – 支持密码短语rsa privatekeys的SSH库,第1张

概述我目前正在研究一个小型的Visual C#应用程序 需要一个SSH库. 我已经尝试过DotNetSSH,Renci.SshNet和SharpSsh. Granados SSH库文档很少(至少我发现几乎没有), 所以我跳过这个. 所有这些库都有一个巨大的问题(恕我直言):他们无法打开SSH私有 带密码的密钥. Renci.SshNet不支持AES. DotNetSSH和SharpSsh使用jsch( 我目前正在研究一个小型的Visual C#应用程序
需要一个SSH库.
我已经尝试过DotNetSSH,Renci.SshNet和SharpSsh.
Granados SSH库文档很少(至少我发现几乎没有),
所以我跳过这个.

所有这些库都有一个巨大的问题(恕我直言):他们无法打开SSH私有
带密码的密钥.

Renci.SshNet不支持AES.
DotNetSSH和SharpSsh使用Jsch(java ssh库)作为基础,似乎有一个
BUG(?)所以它不会解密私钥并不断要求密码.

使用用户名密码和没有密码短语的私钥连接效果很好
与SharpSsh.

有人已经有同样的问题吗?
或者是否有另一个C#SSH库与“RSA私钥和密码”支持?

Thx提前

解决方法@H_404_31@ 我已成功使用 SSH.NET开源库来使用SSH和SFTP.

这是连接密钥文件密码的代码.

public voID Connect(string host,int port,string user,string passphrase,string privateKeyfilePath) {        var keyfiles = new[] { new PrivateKeyfile(privateKeyfilePath,passphrase) };        var methods = new List<AuthenticationMethod>();        methods.Add(new PasswordAuthenticationMethod(user,passphrase));        methods.Add(new PrivateKeyAuthenticationMethod(user,keyfiles));        var con = new ConnectionInfo(host,port,user,methods.ToArray());        var clIEnt = new SshClIEnt(con);        clIEnt.Connect();        // create an xterm shell        var Shell = clIEnt.CreateShellStream("xterm",80,24,800,600,1024);        // for reading & writing to the shell        var reader = new StreamReader(Shell);        var writer = new StreamWriter(Shell);        // ....        clIEnt.disconnect();    }

私钥文件格式

请注意,您的私钥文件必须是OpenSSH格式.如果在记事本中打开密钥文件,则必须在第一行显示“BEGIN RSA PRIVATE KEY”.

如果没有,则使用puttygen将私钥文件转换为OpenSSH格式.

>在puttygen中打开私钥>转到“转化”菜单,然后选择“导出OpenSSH密钥”.>将新密钥保存到文件并使用它.

总结

以上是内存溢出为你收集整理的c# – 支持密码短语rsa privatekeys的SSH库全部内容,希望文章能够帮你解决c# – 支持密码短语rsa privatekeys的SSH库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1229284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存