服务器ssh升级导致的java程序ssh连接失败解决办法

报错如下:

[ERROR] upload.SSHThread 2016-01-26 18:37:45,825 : Create ssh session Failed!! ip=132.90.101.8, username=pnms

com.jcraft.jsch.JSchException: Session.connect: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)

或者

[ERROR] upload.SSHThread 2016-09-19 13:28:16,981 : Create ssh session Failed!! ip=132.77.255.17, username=pnms

com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read

 

此ssh连接问题是由于主机ssh中缺少与jsch jar包匹配的加密算法导致,jsch jar包的默认加密算法貌似是diffie-hellman-group-exchange-sha1。

在目标主机ssh服务的sshd_config文件中添加下列加密算法并重启ssh服务即可解决ssh连接问题。
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256

看评论大家修改ssh配置容易出错,太危险,上面的方式摒弃。

 

 

把JAVA程序的JDK升级到1.8版本并更新jsch jar包到官方最新包 ,测试过后可以正常连接各种ssh版本。

如果仍然不能解决,建议考虑如下方式:

1.美国的出口限制,JDK自带的加密算法位数都不超过256位,需要手工替换。
官方JCE无限制权限策略文件的下载:

JDK6的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

JDK7的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK8的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

2.从oracle官网下载jce_policy-8.zip,并解压,将local_policy.jar和US_export_policy.jar替换到JAVA_HOME/jre/lib/security目录,并重启应用就可以了。

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

或者通过j2ssh.jar方式替代jsch。

参考链接:

http://www-01.ibm.com/support/docview.wss?uid=swg21644338

http://stackoverflow.com/questions/6851461/java-why-does-ssl-handshake-give-could-not-generate-dh-keypair-exception

 

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值