一. 解决方案

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

在目标主机ssh服务的sshd_config文件中添加下列加密算法并重启ssh服务即可解决ssh连接问题。

1
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256
2. 升级版本
把OpenSSH和jsch的版本进行升级

jsch jar包要更新到0.1.50以上版本,经测试0.1.42版本与openssh6.7配合有问题。

--------------------------------2020-06-10—再次更新------------------------

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

版本适配对应适配版本备注
OpenSSH_8.2p1jsch-0.1.55.jar
OpenSSH6.7jsch-0.1.50.jar及以上版本均可适配
OpenSSH5.3xjsch-0.1.8.jar
  1. 回退版本
    回退到以前的版本

  2. j2ssh.jar方式替代jsch

  3. jsch版本下载列表
    https://sourceforge.net/projects/jsch/files/jsch.jar/

转载自码农家园

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐