JSchセッションにネットワークプロキシを接続する
SFTP転送が使うSSHセッションを開く前に、JSchのHTTP CONNECTまたはSOCKS5アダプターを選びます。
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チャネルを開き、転送が終わったらチャネルとセッションを切断します。