Я пытаюсь установить сеанс SFTP с использованием JSch. Код работает правильно, и я могу установить сеанс с несколькими серверами. Однако сегодня я столкнулся с проблемой на одном из серверов.
Caused by: com.jcraft.jsch.JSchException: java.net.ConnectException: Connection timed out:
connect at com.jcraft.jsch.Util.createSocket(Util.java:349) ~[jsch-0.1.54.jar:?]
at com.jcraft.jsch.Session.connect(Session.java:215) ~[jsch-0.1.54.jar:?]
at com.jcraft.jsch.Session.connect(Session.java:183) ~[jsch-0.1.54.jar:?]
После отладки я вижу, что проблема возникает в Session.class.
tmp.join(timeout);
Я попытался явно установить тайм-аут, как показано ниже, но он все еще не работает:
JSch jsch = new JSch();
Session session = jsch.getSession(userName, ip, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect(60000);
Примечание: не пропуская эти тайм-ауты, я до сих пор не столкнулся с проблемой.
Может ли кто-нибудь помочь мне понять возможную причину такого поведения и подсказать мне время ожидания? Кроме того, почему приведенное ниже решение поможет, если оно будет? Я пытаюсь понять основную причину и решение той же проблемы.
Предел времени ожидания сеанса JSch
Спасибо