需要一个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库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)