【发布时间】:2015-12-14 04:26:38
【问题描述】:
我在Algorithm negotiation fail SSH in Jenkins看到了同样问题的答案
我面临同样的问题,但更新 ss_config 没有帮助,我仍然得到同样的错误。我还有另一个问题,可能与此有关。在 Jenkins 常规配置中,我将构建从站添加为远程主机,并为其提供了主机名、端口、用户名和密钥文件路径,但它仍然显示“无法连接到服务器”。我想知道为什么,因为如果我登录到 Jenkins 机器,我可以在命令行中使用相同的密钥文件轻松连接到我的远程主机。
更新:
这是我添加到 ssh_config 的行:
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
这是 Jenkins 中的控制台输出:
[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.SSHBuilder.perform(SSHBuilder.java:60)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
Build step 'Execute shell script on remote host using ssh' marked build as failure
[SSH] executing post build script:
【问题讨论】:
-
至少从客户端向我们显示详细日志,否则我们只能猜测问题所在。此外,您如何更改 ssh_config 或 sshd_config 也会有所帮助。
-
我更新了我的问题,我不明白的是,如果在协商密钥时出现问题,我如何通过 Jenkins 命令行中的 ssh 连接到远程主机。
-
是
jsch,而不是openssh,日志中关于失败原因的详细信息并不多。还有其他算法您可能无法协商 - 密码、MAC。