Ошибка соединения SFTP - PullRequest
       9

Ошибка соединения SFTP

0 голосов
/ 29 апреля 2018

Я использую jsch-0.1.51.jar для подключения sftp в моей программе, и он работал нормально в течение последнего года, но вдруг программа начала выдавать ошибку:

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

Также в обоих случаях, когда я пытаюсь запустить эту программу из Eclipse IDE, она работает нормально. Но когда я создаю jar-файл этого Java-кода, я получаю эти проблемы.

Контекст этого кода подключения SFTP: я подключаюсь к серверу, используя закрытый ключ для загрузки файлов в мой локальный

Может ли какое-нибудь тело помочь мне с этим?

1 Ответ

0 голосов
/ 29 апреля 2018

Ошибка согласования алгоритма.

Это означает, что клиентская и серверная стороны не смогли согласовать алгоритм шифрования, который будет использоваться для обеспечения безопасности соединения SSH. Когда это произойдет, серверная часть закроет соединение, что приведет к появлению IOException, которое вы видите.

Наиболее вероятным объяснением является то, что либо реализация SSH на стороне клиента устарела, либо реализация SSH на стороне сервера устарела. Должны быть некоторые подсказки в журнале jcsh "DEBUG"; см. JSch logger - где я могу настроить уровень . Если это не помогло, посмотрите журналы на стороне сервера.

Решение будет зависеть от того, что вы найдете.

...