使用jschexception验证false的java SSH有时会失败
要求从一台服务器到多台服务器进行ssh,并执行一个命令
当我这样做时,我经常(但并非总是)在尝试从一台服务器到另一台服务器的ssh时收到此异常。原因可能是什么?如何修复?任何帮助都会很好。提前谢谢
jcraft.jsch.JSchException: verify: false
at jcraft.jsch.Session.connect(Session.java:309)
at jcraft.jsch.Session.connect(Session.java:162)
# 1 楼答案
问题依然存在,另外两个答案是正确的
1)0.1.49之前的版本存在漏洞 在0.1.49版本中,理论上是固定的here是更改日志
2)java 1.7和jsch之间存在交互,在这种情况下会出现错误
这种事总是发生在我身上。我相信这是因为一些插件不更新它们的依赖项,并且它们的jsch低于0.1.50
IE:ssh凭据插件 https://github.com/jenkinsci/ssh-credentials-plugin
我添加了一个pull请求来更改依赖项,但它们还没有响应
# 2 楼答案
在Windows 64位系统上使用Java 1.7.0_07,以及Ant 1.7.1和jsch-0.1.44,我也遇到过同样的问题。罐子还使用Ant 1.9.0-alpha和jsch-0.1.49。 我已经在tracker of jsch at sourceforge上报道了这个问题
使用Ivy、jsch和Java 1.7IVY-1374的人也做了类似的错误报告
gradle的用户也报告了与gradle ssh插件第11期相同的问题
# 3 楼答案
jsch 0.1.50已经发布,它解决了这个问题
jsch的下载页面是http://www.jcraft.com/jsch/
# 4 楼答案
提到的fix@antoine实际上是在0.1.51中,而不是在0.1.50中,我想应该归咎于令人困惑的措辞:“自0.1.50版以来的更改”意味着0.1.51
下面的页面“[JSch用户]宣布:JSch 0.1.51”应该更清楚 https://sourceforge.net/p/jsch/mailman/message/32115165/
上面写着