JSch는 네트워크 프록시를 SSH 세션에 올립니다. 그 세션 위에서 여는 SFTP 채널은 이후에 설정된 경로를 사용합니다.

이미 대상 SSH 서버로 구성된 세션이라면 연결하기 전에 HTTP CONNECT 게이트웨이를 선택합니다.

ProxyHTTP gateway = new ProxyHTTP("proxy.example", 8080);
session.setProxy(gateway);
session.connect(10000);

세션은 여전히 SSH 대상, 로그인 구성, 호스트 키 정책을 유지합니다. 게이트웨이 주소는 중계자를 가리킵니다. 그 정책은 대상의 실제 SSH 포트를 허용해야 합니다. 허용된 공용 경로에 있는 공개 SFTP 서버라면 HTTP 프록시 목록이 첫 예시의 게이트웨이 주소를 제공합니다. 프록시 자격 증명이 없는 새 프록시 어댑터를 사용하고 실제 SSH 호스트와 포트에 대한 허가를 확인합니다.

SOCKS5 서비스라면 대신 해당 어댑터를 사용합니다.

session.setProxy(new ProxySOCKS5("proxy.example", 1080));

엔드포인트 프로토콜에 맞는 어댑터를 고릅니다. HTTP 프록시와 SOCKS 수신기는 같은 협상을 이해하지 못합니다.

JSch의 HTTP Basic 프록시 로그인이 적절한 곳에서는 연결하기 전에 gateway.setUserPasswd(proxyUser, proxyPassword)를 호출합니다. SSH 계정은 세션에 구성된 채로 남습니다. 세션이 연결된 뒤 SFTP 채널을 열고, 전송이 끝나면 채널과 세션을 끊습니다.

관련 글