文章目录
- 一. 解决方案
- 1. 添加加密算法
- 2. 升级版本
- 3. 回退版本
- 4. j2ssh.jar方式替代jsch
- 5. jsch版本下载列表
一. 解决方案
1. 添加加密算法
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
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.2p1 | jsch-0.1.55.jar | |
OpenSSH6.7 | jsch-0.1.50.jar | 及以上版本均可适配 |
OpenSSH5.3x | jsch-0.1.8.jar |
3. 回退版本
回退到以前的版本
4. j2ssh.jar方式替代jsch
5. jsch版本下载列表
https://sourceforge.net/projects/jsch/files/jsch.jar/