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。
C#使用Tamir.SharpSsh.jsch上传文件异常Algorithm negotiation fail的更多相关文章
- FtpClient上传文件异常:java.net.SocketException: Connection reset
FtpClient上传文件异常:java.net.SocketException: Connection reset 这问题折磨我快一天了,下午这会儿终于解决了,问题不在程序错误,原因还是出在上传图片 ...
- jsch上传文件到服务器
需求就是上传文件到服务器,服务器的存储地址由程序决定然后可以自动创建. 使用第三方:jsch JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文 ...
- linus jsch上传文件
package com.osplat.util; import java.io.*; import com.jcraft.jsch.*;import com.osplat.bean.Resultmod ...
- 上传文件异常 MultipartException
参考自 https://blog.csdn.net/u010429286/article/details/54381705 现象 上传文件报错 org.springframework.web.mul ...
- 上传文件异常问题 | 413 Request Entity Too Large
开发中遇到这样的问题:一个上传文件的功能,内网测试都正常了,但是发布到外网就无法上传大点的(大于1MB)文件,更奇怪的是,后台还没有任何的异常信息. 于是就用Http抓包工具(HttpDetect)看 ...
- jsch上传文件功能
转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html JSch是Java Secure Channel的缩写.JSch是一个 ...
- ftp上传文件异常
ftp一个服务器 如果是22端口 ssh-2.0-openssh_4.3 ,是什么意思? ftp服务用的是20.21端口,客户端添加ftp信息的时候输入的是21端口 ssh服务用的是22端口,应用于远 ...
- springboot上传文件异常解决方案
配置文件加入: #配置文件传输 spring.servlet.multipart.enabled =true spring.servlet.multipart.file-size-threshold ...
- springmvc上传文件异常
症状: error:org.springframework.web.multipart.MultipartException: Current request is not a multipart r ...
- FDFS上传文件报错 tracker_query_storage fail, error no: 2, error info: No such file or directo
原因: 1.tracker服务没有启动 2.Storage服务没有启动 解决方案: 输入命令查看这两个服务是否启动,如果没有则表明没有启动.启动即可. netstat -tulnp tracker服务 ...
随机推荐
- signed main 和 int main 的区别
事实上只是因为有人直接 #define int long long 了...然后int main改成signed main就行了 #define int long long ... signed ma ...
- 关于el-upload上传图片的一些坑clearFiles()的使用
https://blog.csdn.net/weixin_46421824/article/details/109195624?spm=1001.2101.3001.6661.1&utm_me ...
- zzuli 1902: 985的因子对难题
***这道题明显是在卡时间,类比快速打素数表的算法,*** #include<iostream> #include<cstdio> #include<cstring> ...
- Win10 高效语音输入方案:听写功能 win + H
win + H 打开听写功能,即可打开语音输入,帮你快速糊完文档 (队友亲测好用)
- 到底什么样的 Java 项目用 Solon 好???
什么样的 Java 项目用 Solon 好 就像华为讲的,不要因为爱国而特意买华为手机.Solon 也是,有需要就用不需要就跳过(按正常的需求选择): 信创需要国产化,应该用 Solon 或者 Sol ...
- CLion创建自定义代码模板
1.问题 很多时候我们都想要简化代码编写,比如像IDEA那样,写入一个sout即会补全为System.out.println( |inserts cursor here| );的形式 最急切的例子便是 ...
- 【C/C++】知识点笔记
1 - 联合体内嵌结构体初始化赋值 union { struct { int i; float f; char *p; }; int o; } obj3 = { 1, 2.2, "sk&qu ...
- 【java】设置 tomcat 账号密码
<role rolename="manager-gui"/> <user username="tomcat" password="t ...
- .NET集成IdGenerator生成分布式全局唯一ID
前言 生成分布式唯一ID的方式有很多种如常见的有UUID.Snowflake(雪花算法).数据库自增ID.Redis等等,今天我们来讲讲.NET集成IdGenerator生成分布式全局唯一ID. 分布 ...
- [转帖] TiDB 产品体系介绍
https://www.modb.pro/db/521269#:~:text=%E4%BC%81%E4%B8%9A%E7%89%88%E5%92%8C%E7%A4%BE%E5%8C%BA%E7%89% ...