Jenkins 中的算法协商失败 SSH

2024-07-04

我正在尝试从 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:算法协商失败 https://stackoverflow.com/questions/6263630/jschexception-algorithm-negotiation-fail但它不起作用。从腻子看来一切都好。连接已建立,但当我触发 Jenkins 作业时,会引发错误。我应该尝试另一个版本的 ssh 服务器吗?现在我正在使用 copssh。


TL;DR 编辑您的 sshd_config 并在 KexAlgorithms 中启用对 diffie-hellman-group-exchange-sha1 和 diffie-hellman-group1-sha1 的支持:

KexAlgorithms [email protected] /cdn-cgi/l/email-protection,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 集已更改以删除不安全的算法。”。 (看变更日志 http://www.openssh.com/txt/release-6.7)。该版本于 10 月 6 日发布,并于 10 月 21 日进入 Debian 测试(请参阅Debian 变更日志 https://launchpad.net/debian/+source/openssh/+changelog).

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

  • [电子邮件受保护] /cdn-cgi/l/email-protection
  • ECDH-SHA2-nistp256
  • ECDH-SHA2-nistp384
  • ECDH-SHA2-nistp521
  • 迪菲-赫尔曼-组交换-sha256
  • 迪菲-赫尔曼-group14-sha1

而 JSch 声称支持这些算法 http://www.jcraft.com/jsch/(参见“功能”下)密钥交换:

  • 迪菲-赫尔曼-组交换-sha1
  • 迪菲-赫尔曼-group1-sha1

事实上,他们无法就通用密钥交换算法达成一致。更新 sshd_config(并重新启动 SSH 服务器)即可解决问题。显然,自版本 0.1.50 以来,JSch 应该支持“diffie-hellman-group-exchange-sha256”方法(请参阅变更日志 http://www.jcraft.com/jsch/ChangeLog).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins 中的算法协商失败 SSH 的相关文章

随机推荐

  • getAllNetworkInfo() 在 M 中已弃用,但其替代品具有不同的行为

    ConnectivityManager 的 getAllNetworkInfo 在 API 23 上已弃用 其注释表示使用 getAllNetworks 代替 然而我发现这些没有相同的行为 例如 如果手机有可用的活动蜂窝网络 但 wifi
  • 新的 JUnit 4.8.1 @Category 渲染测试套件几乎已经过时了吗?

    给出的问题 如何运行属于某个类别的所有测试 和答案 https stackoverflow com questions 2176570 how to run all tests belonging to a certain category
  • HTML 文本和密码输入字段的大小不同 Internet Explorer

    我正在为我的登录表单使用此表单设置 tr td class label Username td td td tr
  • 在 Ruby on Rails 中使用 fork 创建并行进程

    我在 Apache 上使用 Passenger 制作了一个 Rails 3 应用程序 我有这个代码 class Billing lt ActiveRecord Base after save sendEmails private def s
  • 致命错误:对布尔值调用成员函数 count()

    class db private pdo query error false results count 0 private function construct try host config get mysql host databas
  • C# 中的新类型定义

    我正在寻找定义新类型并在 C 中使用它的可能性 如下所示 类定义 public class Position public double180 Longitude get set double180 is a type within a r
  • 更改 NSSplitViewController 内的视图

    我正在尝试将我的 Objective C 和现在正在提高的 Swift 知识迁移到 Mac OS X 的应用程序 学习曲线陡峭 我正在尝试加载一个NSSplitViewController如果您愿意的话 根据 主视图 上按下的按钮 详细视图
  • AWS CodeDeploy yaml 文件错误

    我正在使用 AWS 代码部署到 Windows 环境来部署应用程序 我使用 apspec yml yaml 文件 当我部署应用程序时 出现以下错误 部署失败 因为在应用程序规范文件中输入了无效的版本值 确保您的 AppSpec 文件指定 0
  • 如何从python3中的单行输入读取整数数组

    我想从 python3 中的单行输入读取整数数组 例如 将此数组读取到变量 列表 1 3 5 7 9 我尝试过的 arr input split 但这不会将它们转换为整数 它创建字符串数组 arr input split for i val
  • 使用单独的线型绘制 ggplot2 中的缺失值

    我正在使用 ggplot2 创建线图 但缺少用 NaN 表示的数据 我的线图当前没有在缺失值之间添加任何线 但是 我想用虚线连接缺失的数据 而所有已知的数据用实线连接 这是我当前绘图的代码 其中包含我的数据框的一小部分和下面的绘图图像 ma
  • 同一个测功机可以运行多个进程吗?

    我正在创建运行多个微服务的小型应用程序 我希望这个应用程序 24 7 可用 所以免费的测功时间对我来说还不够 如果我升级到hobby我会得到的计划10 Process Types 我可以在每个进程 Web 上运行另一个微服务吗 或者 Her
  • 双因素认证系统

    我正在尝试使用 SMS 作为第二种身份验证方法来设计一个双因素身份验证系统 在 PHP 上 这是一个测试项目 任何人都可以帮助我设计这项服务吗 这将是一个基于网络的系统 下面是我到目前为止所做的 客户端输入用户名和密码后 网站将向我们的服务
  • 2 个站点共享一个 Web 应用程序池?什么时候应该使用这个?

    我只是做了一个简单的实验 我在本地 IIS 中创建了一个 Web 应用程序池 然后让 2 个网站指向同一个应用程序池 网站不是虚拟的 当然 它们在本地运行正常 我们什么时候应该开始使用共享应用程序池 在什么情况下您应该在两个网站之间共享应用
  • 微软Azure DDOS防护

    我正在 Microsoft Azure 中运行企业级应用程序 我想知道 Microsoft Azure 中 DDOS 投影的建议是什么 该文档明确指出该平台受到 DDOS 保护 但没有提供更多详细信息 我对Azure DDOS的理解是 如果
  • Android onBackPressed() 没有被调用?

    在我的 MainActivity 从 AppCompatActivity 扩展 中 我想重写 onBackPressed 方法 如下所示 Override public void onBackPressed Log d MainActivi
  • 构建并运行在 xcode 中禁用

    有一些应用程序显示构建并运行图标已禁用 这使我无法运行该应用程序 并非所有应用程序都会发生这种情况 但只有少数应用程序会发生这种情况 它主要发生在 facebook 应用程序和其他一些应用程序中 有人能知道可能是什么问题吗 我已经尝试了更改
  • PHP 从 MySQL 中选择日期字段为未来 7 天

    我有一个自动检查器 可以检查将在未来 7 天内过期的域名 并向客户发送电子邮件 我使用这个 SQL 查询 SELECT from domain names where status or status valid and expiry da
  • EditorFor/CheckBoxFor boolean 将 data-val-required 属性添加到 HTML,而不将 required 属性添加到模型

    我的模型类有一个没有必需属性的 bool 属性 public class Test public bool TestBool1 get set 然后在我的剃刀视图中 我使用 EditorFor CheckBoxFor 也会发生同样的情况 d
  • Swift - 可选 Void

    我正忙着使用NSURLProtocolClient的 URLProtocol 函数 welf client URLProtocol welf didReceiveResponse operation response cacheStorag
  • Jenkins 中的算法协商失败 SSH

    我正在尝试从 Jenkins ssh 到本地服务器 但抛出以下错误 SSH Exception Algorithm negotiation fail com jcraft jsch JSchException Algorithm negot