sftp-JSCH连接SFTP服务Algorithm negotiation fail

问题描述

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-dssecdsa-sha2-nistp256ssh-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-ctraes192-ctraes256-ctr
还是不行。

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

解决方案

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-sha1diffie-hellman-group14-sha1diffie-hellman-group-exchange-sha1diffie-hellman-group-exchange-sha256ecdh-sha2-nistp256ecdh-sha2-nistp384ecdh-sha2-nistp521diffie-hellman-group1-sha1curve25519-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.

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

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

时间: 2024-08-31 02:11:50

sftp-JSCH连接SFTP服务Algorithm negotiation fail的相关文章

JSch连接SSH问题Exception:Algorithm negotiation fail

使用Jenkins配置完远程SSH服务器,发生无法连接问题,查看Log后找到 [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(Se

使用jsch连接sftp

问题描述 小弟开发过程中遇到了一个问题,当我使用jsch连接sftp的时候,我可以打开通道,但是不能连接上是什么情况?返回的错误信息是:信息:ConnectChannel.com.jcraft.jsch.JSchException:java.io.IOException:channelisbrokenatcom.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:228)atcom.jcraft.jsch.Channel.connect(Channel.

ppk-sftp用证书文件登录报algorithm negotiation fail

问题描述 sftp用证书文件登录报algorithm negotiation fail 请教各位大神,我要使用sftp传输文件,可以再登录这块出现了问题几天都没找到解决方法 开发语言C# 用的是网上开源的Tamir.SharpSSH.dll 对方提供了host name和user name 用工具PuTTY在本机生成了2个文件 public key和private key public key已传给对方加过白名单了 用工具WinSCP 输入host name 和user name再传入priva

文件传输-java使用SSH方式上传报错:Algorithm negotiation fail

问题描述 java使用SSH方式上传报错:Algorithm negotiation fail java用jsch实现文件传输(SSH形式),但是好像本地和服务器加密方式不一致,一直报错: com.jcraft.jsch.JSchException: Algorithm negotiation fail 解决方案 如果是已form表单中的上传.需要改form的属性enctype( 属性规定在发送到服务器之前应该如何对表单数据进行编码.) 改属性默认值:application/x-www-form

auth fail-JSCH连接SFTP服务报错: Auth fail

问题描述 JSCH连接SFTP服务报错: Auth fail 手动测试SFTP连接OK,程序JSCH连接SFTP就报错com.jcraft.jsch.JSchException: Auth fail.已经确认了N遍,用户名/密码/ip配置绝对没错.求各位大神积极发言帮忙解决!!不胜感激!! 解决方案 请尝试 首先确保服务器上的/etc/ssh/sshd_config中的PasswordAuthentication设置为 PasswordAuthentication yes 如果还不行,可以参考s

android-Android 程序不能连接照相机服务

问题描述 Android 程序不能连接照相机服务 当用户点击相机时,几秒后它会打开下一个屏幕.并且抛出异常Fail to connect to camera service和cannot connect to camera 这是我使用的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View viewLoad = LayoutInflater.from(Camera

win7打开磁盘管理出现“无法连接虚拟磁盘服务”是怎么回事

win7打开磁盘管理出现"无法连接虚拟磁盘服务"是怎么回事   具体方法如下: 1.右键点击计算机选属性--管理--服务找到virtual disk服务 双击将其开启 禁用的话 就用下拉列表选择手动; 2.如果上面的还是不管用,一般可以肯定你是装了UltraISO软件,软件给卸载了就能打开了.你在装这个软件时应该给可选项都给勾选了,所以会默认打开虚拟磁盘,但是你系统又没有虚拟磁盘所以也就找不到.

android通过mina长连接与服务端通信

问题描述 android通过mina长连接与服务端通信 由于项目要求,android与服务端交互方式通过socket长连接,目前自己已经能够搭建个简单的客户端,并 接收到服务端的消息.现在的问题是在如何在不同的activity中获得messageReceived方法中接收到的消息. 解决方案 你的业务是什么~ 每台理解 你的问题

使用VPN容器连接容器服务内网

使用VPN容器连接容器服务内网 我们知道容器服务的容器网络是在ECS的网络上的一层overlay的网络,每个容器有集群中独立可达的IP地址,在集群中可以通过这个独立的IP直接访问容器的服务,但是这个overlay的网络对外部是隔离的,不在集群中的容器上却没办法联通,那我要怎么连接容器进行测试呢?可以使用VPN的容器快速搭建集群网络中的VPN服务供外部机器连接, 并通过这个VPN作为网关,连接集群中的其他容器地址. 本示例中将通过PPTP的方式创建VPN的连接,本示例中的镜像和模板的项目地址:ht