大牌印花图案设计网站,河北邯郸永利ktv视频,网站推广计划方案,湖南网站设计外包哪家好文章目录方案一#xff08;jdk升级到jdk8,openSSH配置文件不变,亲测可用#xff09;方案二#xff08;保持jdk1.6,修改openSSH配置文件,亲测可用#xff09;问题描述 环境#xff1a;jdk1.6 jsch-0.1.52.jar openSSH7.4 升级openSSH到7.4后jsch报错#xff1a;End of I…
文章目录方案一jdk升级到jdk8,openSSH配置文件不变,亲测可用方案二保持jdk1.6,修改openSSH配置文件,亲测可用问题描述 环境jdk1.6 jsch-0.1.52.jar openSSH7.4 升级openSSH到7.4后jsch报错End of IO Stream Read* 或者报错Algorithm negotiation fail*。
*注 End of IO Stream Readjdk1.6支持加密算法太少导致报文无法正确解析。 Algorithm negotiation fail客户端指定的加密算法openSSH不支持。
问题分析
1、网上说的jsch-0.1.52.jar不支持openSSH7.4版本的说法不靠谱jsch-0.1.52.jar也是能正常访问的。
2、真正的原因是jdk1.6支持的加密算法和openSSH7.4声明支撑的加密算法不一致导致的。
jdk1.6支持的加密算法较少openSSH7.4默认屏蔽了jdk1.6支持的加密算法,如diffie-hellman-group1-sha1等。
解决思路是要么升级jdk让jdk支持更多加密算法,要么通过修改/etc/ssh/sshd_config配置文件让openSSH7.4支持更多的加密算法。
问题解决
方案一jdk升级到jdk8,openSSH配置文件不变,亲测可用
1、将jdk升级到jdk8即可 注意 因为有的地方会说要在代码中指定diffie-hellman-group1-sha1算法详见方案二这里千万不要画蛇添足。 该方案从升级jdk入手jdk8支持了大多数加密算法。该方案不需要修改任何配置文件。
方案二保持jdk1.6,修改openSSH配置文件,亲测可用
1、修改/etc/ssh/sshd_config配置文件添加jdk1.6支持的加密算法如下
# 编辑sshd_config
vim /etc/ssh/sshd_config# 添加1.6的加密算法KexAlgorithms diffie-hellman-group1-sha1# 重启sshd
/etc/init.d/sshd restart注意 如果用的是jsch-0.1.52 jar包按上述方法修改完即可。 如果用的是jsch-0.1.53及以上jar包还需要对代码做如下修改 修改代码在session中指定加密算法为diffie-hellman-group1-sha1如下所示
Properties sshConfig new Properties();
sshConfig.put(kex, diffie-hellman-group1-sha1);这是为什么呢 因为建立连接时openSSH会把它支持的所有加密算法发给jsch,让jsch从中挑选一个如果不清楚SSH连接请先了解SSH建立原理。 如果列表中有diffie-hellman-group1-sha1算法jsch-0.1.52则会优先选择该算法如果没有则任选一个如果jdk不支持选择的算法就会报错这个算法恰好是jdk1.6支持的所以连接成功。而jsch-0.1.53及以后的jar包默认选择其他算法具体是什么还需确认该算法jdk1.6不支持所以报错。 如果要使用jsch-0.1.53及以后的jar包就需要在代码中指定使用diffie-hellman-group1-sha1算法。
方案三未测试。该方法不用升级jdk只需安装扩展包 1、安装java安全插件Java Cryptography Extension(JCE) Unlimited Strength Jurisdiction Policy Files。 安装方法参考http://blog.csdn.net/csnewdn/article/details/53641308 对应版本如下
jdk版本对应插件名称下载地址jdk6Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.htmljdk7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.htmlJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7jdk8Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html