`

JSch连接SSH问题Exception:Algorithm negotiation fail

 
阅读更多
JSch连接SSH问题Exception:Algorithm negotiation fail[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

原因分析:
OpenSSH和 JSch支持的交换算法不同,需要一方打开另一方支持的交换算法。

OpenSSH enables only the following key exchange algorithms by default:
- curve25519-sha256@libssh.org
- ecdh-sha2-nistp256
- ecdh-sha2-nistp384
- ecdh-sha2-nistp521
- diffie-hellman-group-exchange-sha256
- diffie-hellman-group14-sha1

Where as JSch claims to support these algorithms for key exchange:
- diffie-hellman-group-exchange-sha1
- diffie-hellman-group1-sha1
解决办法:
在SSH的配置文件
/etc/ssh/sshd_config
增加以下两行,让SSH支持相应的算法和MACs


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

MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com,hmac-md5,hmac-sha1,hmac-sha1-96,hmac-md5-96
完成后重启SSH即可解决问题
分享到:
评论

相关推荐

    升级jsch包解决ssh升级后jschexception:algorithm negotiation fail 等问题

    本文将深入探讨"升级jsch包解决ssh升级后jschexception:algorithm negotiation fail等问题"这一主题。首先,我们需要理解这个问题的根本原因。当SSH服务器升级了其加密算法,而客户端(在这种情况下是使用JSCH的Java...

    jenkins jsch hpi插件

    客户端ssh升级以后,jenkins通过ssh远程发布的时候,jschexception:algorithm negotiation fail 错误,安装此插件即可修复此错误。

    基于jsch的ssh访问

    基于jsch包实现远程服务器的sftp访问,并可远程发送命令执行,可以配合https://download.csdn.net/download/u011230766/10710755,实现密钥登录,类KeyGen用于生成非对称密钥

    jsch0.1.55.jar_jsch0.1.53.jar

    总的来说,JSch是一个强大的工具,用于在Java应用中实现安全的SSH连接。通过不断更新和优化,如从0.1.53到0.1.55的版本迭代,开发者解决了实际使用中遇到的问题,提高了其稳定性和兼容性。对于遇到特定异常的用户,...

    java进行ssh协议连接的jar包jsch-0.1.54.jar

    Java中的JSCH库(JSch)是实现SSH连接的开源库,它提供了全面的功能,包括SFTP(SSH File Transfer Protocol)、SCP(Secure Copy)以及shell会话等。在本文中,我们将深入探讨如何使用JSch-0.1.54.jar这个库来实现...

    com.jcraft.jsch

    在实际应用中,使用jsch库进行SSH连接的一般步骤如下: 1. 加载jsch库,并实例化JSch对象。 2. 创建Session对象,设置主机名、端口号、用户名和认证方式。 3. 调用Session的connect()方法建立连接。 4. 创建通道,...

    jsch-0.1.53.zip

    `jsch-0.1.53.zip` 包含的是JSch库的0.1.53版本,该版本修复了一些问题,特别是“Algorithm negotiation fail”错误,这是一个常见的SSH连接问题,通常由于服务器和客户端之间不匹配的加密算法导致。 SFTP是一种...

    jsch的jar包,包含0.1.51,0.1.52,0.1.53,0.1.54等这几个版本

    7. **错误处理和调试**:JSch提供了详细的错误消息和日志记录功能,便于开发者调试和解决与SSH连接相关的问题。 8. **配置灵活性**:用户可以通过配置参数来调整连接行为,例如超时设置、算法选择等。 9. **兼容性...

    jmeter连接ssh的jar包.zip

    在IT测试领域,Apache JMeter是一款广泛...总的来说,"jmeter连接ssh的jar包.zip"提供了在JMeter中实现SSH连接和命令执行的能力,让测试工程师能够在性能测试中纳入更多的系统层面的操作,从而获得更全面的测试结果。

    jsch-0.1.55_jsch_JSCH0.1._55_服务器_jsch0.1.55_

    JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的 程序中。同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器

    java使用JSCH进行连接远程服务器Demo

    JSCH是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如Linux或Unix系统。下面我们将深入探讨如何使用JSCH进行远程服务器连接,并通过DEMO来学习这一过程。 首先,你需要在项目中引入JSCH库。...

    ssh开源开发API-JSCH.zip

    JSCH(Java Secure Channel)是SSH的一个开源实现,它为Java开发者提供了一个API,可以方便地创建SSH连接,执行命令,进行文件传输等操作。这个API允许开发者在Java应用中集成SSH功能,例如用于自动化运维、远程脚本...

    详解Java使用Jsch与sftp服务器实现ssh免密登录

    4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch对象,然后创建一个Session(会话),并设置Session的配置属性。 5. 接着通过Session对象获取一个Channel(通道),并打开SFTP通道。此时可以利用...

    jsch-0.1.55.jar 包

    `jsch-0.1.55.jar` 提供了强大的SSH2连接和命令执行能力,对于需要在Java应用程序中执行远程Linux操作的开发者来说,这是一个不可或缺的工具。通过理解JSCH的工作原理和使用方法,开发者可以构建出安全、可靠的远程...

    vertx-ssh-client:基于 JSch 的 SSH 客户端的异步实现

    Vert.x SSH 客户端 Vert.x 模块,用于围绕 JSch 创建异步包装器,用于对 SSH 服务器执行 SSH 操作。 它的设计与 Vert.x Core 的 NetSocket 类似,但有一些特定于 SSH 的附加项目。

    jsch-0.1.54-API文档-中文版.zip

    Maven坐标:com.jcraft:jsch:0.1.54; 标签:jcraft、jsch、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变...

    SSH协议连接远程服务器的java实现

    为了提高SSH连接的性能,可以采取以下措施: 1. **使用SSH2协议**:SSH2协议相比SSH1具有更高的安全性和性能。 2. **压缩传输数据**:启用数据压缩可以减少数据传输量,从而提高效率。 3. **优化连接池管理**:对于...

    jsch-0.1.54.zip

    3. `com.jcraft.jsch.JSchException`:JSch库中的异常类,用于捕获和处理与SSH连接相关的错误。 4. `com.jcraft.jsch.ChannelSftp`:实现了SFTP协议的类,提供了丰富的文件操作方法。 5. `...

    jcraft-jsch.zip

    《JSch:Java SSH 库的深度探索》 JSch,全称为JCraft SSH,是一个用Java编写的开源库,用于实现Secure Shell (SSH) 协议。在标题"jcraft-jsch.zip"中,我们可以看到这个压缩包包含了JSch的两个版本,0.1.24和...

    jsch-0.1.54-API文档-中英对照版.zip

    Maven坐标:com.jcraft:jsch:0.1.54; 标签:jcraft、jsch、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持...

Global site tag (gtag.js) - Google Analytics