Java SFTP连接错误

Java SFTP连接错误,java,jsch,Java,Jsch,我在我的程序中使用jsch-0.1.51.jar进行sftp连接,在过去1年中工作正常,但突然程序开始抛出错误: Algorithm negotiation fail. Below code: ========================================= jsch.addIdentity(sftpIdentityFilePath); logger.info("*****************Getting SFTP Con

我在我的程序中使用jsch-0.1.51.jar进行sftp连接,在过去1年中工作正常,但突然程序开始抛出错误:

Algorithm negotiation fail. Below code: 
    =========================================
            jsch.addIdentity(sftpIdentityFilePath);
        logger.info("*****************Getting SFTP Connection******************");
        session = jsch.getSession(sftpUser, sftpHost, 2222);
        System.out.println("crossed seesion initialize");
        session.setConfig("StrictHostKeyChecking", "no");
        System.out.println("crossed seesion config");
        session.connect();
        System.out.println("crossed seesion connect");
        channel= session.openChannel("sftp");
        System.out.println("sftp server connected");
        logger.info("SFTP server connected");
        channel.connect();
        logger.info("*****************SFTP Connected******************");


    ==============================================================    
在找到问题后,我使用了一个更新的jar来更新jsch-0.1.54.jar。但它抛出了一个不同的异常

2018-04-28 18:17:51 ERROR FileCopyMain:978 - 
Session.connect: java.io.IOException: End of IO Stream Read
在这两种情况下,当我试图从EclipseIDE运行这个程序时,它工作正常。但是当我创建这个Java代码的jar文件时,我遇到了这些问题


此SFTP连接代码的上下文:我正在使用私钥连接服务器,以便将文件下载到本地服务器

有人能帮我解决这个问题吗

算法协商失败

这意味着客户端和服务器端无法就用于保持SSH连接安全的加密算法达成一致。发生这种情况时,服务器端将关闭连接,导致出现您看到的IOException

最可能的解释是客户端SSH实现已经过时,或者服务器端SSH实现已经过时。jcsh调试日志中应该有一些线索;看见如果失败,请查看服务器端的日志


解决方案将取决于您的发现。

您能将代码的相关部分发布到您使用jsch的地方吗?我已经编辑了我的代码部分,这是一个问题。我正在使用jsch进行sftp连接。我在尝试连接此会话时遇到上述错误。以上session.connect;该SFTP连接代码的上下文:我正在连接一个服务器,使用私钥将文件下载到我的localJsch日志记录是个好主意;JSSE不适用,因为SSH是与SSL/TLS完全不同的协议,并且完全在Jsch中实现,不使用JSSE或任何其他协议提供程序。它确实使用来自任何JCA提供者的原语,如密码和散列。除其他差异外,SSH协商几个单独的算法,而SSL/TLS(草案1.3除外)协商包含这些算法的单个密码套件。