문제 : JSCH 라이브러리를 사용하여 SFTP로 원격 사이트를 연결하면 "채널이 열리지 않습니다."라는 결과가 발생합니다. 코드는 한 인터넷 연결에서 정상적으로 작동하지만 다른 인터넷 연결에서는 실패합니다. 다른 것은 프록시를 통해 수행됩니다. 그럼에도 불구하고 FileZilla 클라이언트를 사용하여 다른 SFTP와 연결할 수 있습니다.JSCH 채널이 열리지 않음 (신규)
RESEARCH : 연결 시간 제한이 증가하고 useDNS : false 비슷한 질문을 시도했습니다. 세션과 채널이 준비되어 있습니다. 그래도 시간 초과 후 채널 연결이 실패합니다.
질문 : 연결 방법.
는 다음 코드와 오류 스택 추적 추출물이다 :
JSch jsch = new JSch();
UserInfo userInfo ;
jsch.setKnownHosts(KNOWN_HOSTS);
session = jsch.getSession(
Menue.SITE_LOGIN,
Menue.SITE_HOST,
Menue.SITE_PORT);
session.setPassword(
Menue.SITE_PASSWORD);
if (Menue.USE_PROXY) {
session.setProxy(
new ProxyHTTP(
Menue.PROXY_HOST,
Menue.PROXY_PORT));
}
session.setConfig(
"StrictHostKeyChecking",
"yes");
session.connect();
channel = session.openChannel("sftp");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(60 * 1000); // Error: channel is not opened.
스택 트레이스 :
com.jcraft.jsch.JSchException : 채널이 열리지 않습니다. com.jcraft.jsch.Channel.connect (Channel.java:151)에서 com.jcraft.jsch.Channel.sendChannelOpen (Channel.java:765)
[Channel.java 라인 765 (HTTP ://grepcode.com/file/repo1.maven.org/mav jsch/Channel.java? av = f # 765)는 5 초 제한 시간이 너무 짧기 때문에 실패하고 있음을 나타냅니다. 그 문제를 해결하는 것이 확실해 보입니다. 타임 아웃을 늘리려고 시도했지만 다른 방법으로는 실패합니다. 그러나 우리는 귀하가 귀하의 질문에 제시하는 문제에 대해서만 당신을 도울 수 있습니다. – Kenster
60 초로 변경되었습니다. 같은 결과. 그것은 다른 사무실에서 전혀 시간 초과없이 잘 작동합니다. – Zon
60 초 동안 서버에서 어떤 일이 발생했는지 조사 할 수 있습니까? 예를 들어 서버가 OpenSSH이면 sftp 채널 요청을 처리하기 위해 [sftp-server] (http://man.openbsd.org/sftp-server) 프로그램의 인스턴스를 시작해야합니다. 또한 ssh 서버는 여러 가지 방법으로 특정 연결을 처리하도록 설정할 수 있습니다. 또는 사용자의 .bashrc 또는 서버의 유사한 파일이 sftp-server 프로그램 시작을 방해 할 수 있습니다. – Kenster