当前位置: 首页 > 面试题库 >

Jenkins中的算法协商失败SSH

杨飞
2023-03-14
问题内容

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

[SSH] Exception:Algorithm negotiation fail
    com.jcraft.jsch.JSchException: Algorithm negotiation fail
    at com.jcraft.jsch.Session.receive_kexinit(Session.html" target="_blank">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)。



 类似资料:
  • 问题内容: 我正在尝试使用JSch(0.1.44-1)通过ssh连接到远程sftp服务器,但是在“ session.connect();”期间 我收到此异常: 来自JSch的日志: 我可以使用linux sftp命令登录到远程服务器。我试图在互联网上找到任何线索,但是失败了。 linux sftp命令的调试输出: 问题答案: SSH客户端和服务器在几个地方尝试并同意一个通用实现。我知道的两个是加密

  • Out FTP服务器进行了迁移,以获得更好的安全性(不知道关于它的很多细节)。 但升级后,我们无法从服务器下载/上传文件。在升级之前它工作得很好。错误日志显示: NS0:客户端无法连接到FTP服务器。http://schemas.cordys.com/ftpconnector/1.1cordys.ftpconnector.messages.ftpserverconnectionfailedcom.

  • 我正在尝试使用SSL调用web服务。它给出了以下错误:

  • 我安装了:“CPAN isntall crypt::ssleay”,因此“fs.cgi:错误500 SSL协商失败:”的错误更改为“请求fs.cgi时失败:SSL协商失败:在/usr/local/share/perl5/lwp/protocol/http.pm行25在/usr/local/share/perl5/lwp/protocol/http.pm行25” 怎么解决这个?我搜索了这个论坛,但问

  • 我正在运行一个旧的Debian服务器,该服务器每天通过Perl脚本获取一个网页。从昨天开始,脚本失败,出现“500 SSL协商失败”错误。 就像我说的,它是一个运行所有东西的旧版本的旧服务器: Perl:5.8.8 OpenSSL:0.9.8C LWP:5.805 crypt::ssleay:0.57 测试1:我尝试的第一件事是将OpenSSL更新到1.0.2D。这没有帮助,我仍然得到了“SSL协

  • Jenkins SSH服务器显示上述错误,当试图通过SSH连接到本地服务器(Linux容器)时,尝试通过SSH插件进行设置时,算法协商失败。我可以在终端上使用ssh连接。 Jenkins.plugins.publish_over.BapPublisherException:无法连接和初始化SSH连接。消息:[无法连接配置[anisbleHOST]的会话。消息[算法协商失败]] Ubuntu Mac