2 clor001 Clor001 于 2014.10.28 11:24 提问

JSCH连接SFTP服务Algorithm negotiation fail

JAVA环境:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Server VM (build 20.45-b01, mixed mode)

jsch-0.1.42.jar

SFTP环境:
OpenSSH_6.7p1, OpenSSL 1.0.1j 15 Oct 2014。

现象就是应用程序客户端始终SFTP连接不了服务端,导致很多功能不能使用。
而在一些旧版本的OpenSSL机器上,如0.9.8e版本上是没有问题的,只要一升级OpenSSL就会导致该问题。

尝试思路:
1. JSCH版本过低,不支持最新版本OpenSSL导致的。
升级到JSCH 0.1.51版本后依然不行。

  1. JSCH不支持ECDSA算法,是无法使用最新OpenSSL的。
    为JSCH添加支持ECDSA算法的插件--->未测试。
    有没有哪位大神指明一下?

  2. 使用SSH调试模式连接:
    debug1:no match JSCH-0.1.51
    ...
    debug1:list_hostkey_types:ssh-rsa, ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519[preauth]
    ...
    debug1:kex:client->server aes128-ctr hmac-sha1 none [preauth]
    debug1:kex:server->client aes128-ctr hmac-sha1 none [preauth]
    debug1:Unable to negotiate a key exchange method [preauth]

    ...

然后尝试在sshd_config中添加了
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
还是不行。

求哪位大神指教一下,给个思路。

5个回答

jinjianhui
jinjianhui   2016.07.11 11:27

我遇到类似的问题,jsch升级到最新版0.1.53即解决了问题

qq_38189106
qq_38189106 回复向下生长的花: 非常感谢,弄了一整天。最后看到这里才解决的
6 个月之前 回复
qq_38189106
qq_38189106 回复McAchilles: 可以的,我刚刚也是看到这条评论去升级了一下jar包就可以了
6 个月之前 回复
u013456765
u013456765 回复McAchilles: 我也是升级到0.1.53解决的
接近 2 年之前 回复
zhong15812927170
zhong15812927170 你好,jsch升级到0.1.53版本就能解决吗?我最近也遇到这个问题
接近 2 年之前 回复
Clor001
Clor001   2014.10.29 16:10

After upgrading OpenSSL and OpenSSH, before re-start ssh service:
Please add parameters in configure file < /etc/ssh/sshd_config > and < /usr/etc/sshd_config > as below:

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

because of algorithm negotiation fail occurred by OpenSSH and JSCH.
key exchange failure between JSCH and OpenSSH, it’s common issue for all code users.
JSCH support Key exchange algorithms: diffie-hellman-group1-sha1和diffie-hellman-group-exchange-sha1
But these algorithms are not listed by OpenSSH_6.7p1 Key exchange algorithms list.

So we need to specify key exchange algorithms in SSH configure files.

junshao21
junshao21   2015.01.28 09:42

你好,请问你的这个问题解决了吗?我现在也遇到了这个问题。主机ssh升级到6.7后,我们使用jsch jar包ssh连接不上报Algorithm negotiation fail。

hnsqlyx
hnsqlyx 为什么会报错呢?错误信息:Starting sshd:/etc/ssh/sshd_config line 139: Directive 'KexAlgorithms' is not allowed within a Match block,请问一下这是什么原因?
2 年多之前 回复
hnsqlyx
hnsqlyx 回复Scout_: 我在sshd_config添加了KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256
2 年多之前 回复
woshixiaomongo
woshixiaomongo 回复Scout_: 我初次尝试使用jsch执行shell命令,但是在centos6.5系统没有问题,debian8.1就登陆不上,能帮帮我吗?
2 年多之前 回复
dingnianfeng
dingnianfeng 回复Scout_: 是在对端主机上添加 这一行,还是在本机上添加 啊。是添加到sshd_config文件 的最后一行就行呗
接近 3 年之前 回复
junshao21
junshao21 问题已解决。应该是jsch默认使用diffie-hellman-group-exchange-sha1算法,请在主机ssh服务的sshd_config文件中添加下列加密算法并重启ssh服务验证。 KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256
3 年多之前 回复
hnsqlyx
hnsqlyx   2015.12.10 19:50

请问你的问题解决了吗?我也遇到了这个问题,请给我指点一下吧?

sinat_32693697
sinat_32693697   2016.06.06 17:28

ssh client 报 algorithm negotiation failed的解决方法之一
修改sshd的配置文件 /etc/ssh/sshd_config

在配置文件中添加:

Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc

MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!