ToB企服应用市场:ToB评测及商务社交产业平台

标题: C#使用Tamir.SharpSsh.jsch上传文件异常Algorithm negotiation fail [打印本页]

作者: 宝塔山    时间: 2022-11-23 21:10
标题: C#使用Tamir.SharpSsh.jsch上传文件异常Algorithm negotiation fail
环境

服务器:centos6.5
客户端:Windows
前言

项目中有一个exe,安装在客户端,其中有一个功能是将本地产生的文件上传至服务器,这个功能是以服务的方式安装在客户端上。之前一切好使,文件能正常上传到服务器。但最近发现产生的文件没有被上传到服务器,查看文件上传服务的事件日志提示密码错误。但是我可以保证服务器的密码没人动过。
问题复现

苦寻未果,最后找出工程,启动调试,当Tamir.SharpSsh.jsch.Session对象连接目标服务器时,抛出异常了Tamir.SharpSsh.jsch.JSchException:“Algorithm negotiation fail”意思是算法协商失败。


到这里突然想起来,前段时间因为漏扫出很多漏洞,其中就有openssh当时顺便一起升级了,没想到给自己埋坑了,升级后加密算法不一样了,导致Tamir.SharpSsh.jsch无法连接到服务器。抛出算法协商失败的异常。
解决

1、网上很多解决方案,最简单的就是修改sshd_config文件,加入一些加密算法,我试了,行不通。
2、尝试升级Tamir.SharpSsh.jsch,能找到的版本就是SharpSSH-1.1.1.13,而我项目里引用的就是这个版本,找半天没找到更高的版本。
3、期间想过把openssh降级,恢复到系统默认安装的版本。但这个办法会导致漏扫出漏洞。
4、最终决定弃用Tamir.SharpSsh.jsch改用Renci.SshNet.Sftp,在管理NuGet程序包里直接搜SSH.NET第一个就是,下载安装引用一气呵成。

程序稍微的改动下,可以正常连接,并上传文件。
end。
 
 
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4