Jenkins中的算法协商失败SSH

我正在尝试从Jenkins SSH到本地服务器,但抛出以下错误:

[SSH] Exception:Algorithm negotiation fail

com.jcraft.jsch.JSchException: Algorithm negotiation fail

at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)

at com.jcraft.jsch.Session.connect(Session.java:286)

at com.jcraft.jsch.Session.connect(Session.java:150)

at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)

at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)

at org.jvnet.hudson.plugins.SSHBuildWrapper.executePreBuildScript(SSHBuildWrapper.java:75)

at org.jvnet.hudson.plugins.SSHBuildWrapper.setUp(SSHBuildWrapper.java:59)

at hudson.model.Build$BuildExecution.doRun(Build.java:154)

at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)

at hudson.model.Run.execute(Run.java:1754)

at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)

at hudson.model.ResourceController.execute(ResourceController.java:89)

at hudson.model.Executor.run(Executor.java:240)

Finished: FAILURE

SSH服务器上Java的安装版本:

java version "1.8.0_25"

Java(TM) SE Runtime Environment (build 1.8.0_25-b18)

Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

客户端上的Java安装版本:

java version "1.8.0_25"

Java(TM) SE Runtime Environment (build 1.8.0_25-b18)

Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

还尝试了以下解决方案:

JSchException:算法协商失败,

但是不起作用。从油灰看来,一切正常。建立了连接,但是当我触发Jenkins作业时,将引发错误。我应该尝试其他版本的ssh服务器。现在我正在使用copssh。

回答:

TL; DR编辑您的sshd_config并在KexAlgorithms中启用对diffie-hellman-group-exchange-

sha1和diffie-hellman-group1-sha1的支持:

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

我怀疑问题是在OpenSSH

6.7中进行以下更改后出现的:“密码和MAC的默认设置已更改,以删除不安全的算法。”。(请参阅changelog)。该版本于10月6日发布,并于10月21日进行了Debian测试(请参阅Debian

changelog)。

默认情况下,OpenSSH仅启用以下密钥交换算法:

  • curve25519-sha256@libssh.org
  • ecdh-sha2-nistp256
  • ecdh-sha2-nistp384
  • ecdh-sha2-nistp521
  • diffie-hellman-group-exchange-sha256
  • diffie-hellman-group14-sha1

JSch声称支持这些算法(请参阅“功能”下的内容)进行密钥交换:

  • diffie-hellman-group-exchange-sha1
  • diffie-hellman-group1-sha1

因此,确实,他们无法就通用的密钥交换算法达成共识。更新sshd_config(并重新启动SSH服务器)可以解决问题。从版本0.1.50开始,显然JSch应该支持“

diffie-hellman-group-exchange-sha256”方法(请参阅changelog)。

以上是 Jenkins中的算法协商失败SSH 的全部内容, 来源链接: utcz.com/qa/417809.html

回到顶部