gpt4 book ai didi

java - Jenkins中的算法协商失败SSH

转载 作者:IT老高 更新时间:2023-10-28 20:56:53 30 4
gpt4 key购买 nike

我正在尝试从 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: Algorithm negotiation fail但它不起作用。从腻子来看,一切似乎都很好。连接已建立,但当我触发 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 默认只启用以下 key 交换算法:

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

而 JSch 声称支持 these algorithms (参见“功能”下)进行 key 交换:

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

确实,他们无法就通用 key 交换算法达成一致。更新 sshd_config(并重新启动 SSH 服务器)就可以了。显然,JSch 应该从 0.1.50 版本开始支持“diffie-hellman-group-exchange-sha256”方法(参见 changelog)。

关于java - Jenkins中的算法协商失败SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424621/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com