ProxySOCKS5 は JSch セッションを既存の SOCKS サービスのクライアントにします。それ自体は逆の機能—他のクライアントを SSH 経由で運ぶ SOCKS リスナー—を提供するものではありません。

JSch jsch = new JSch();
jsch.setKnownHosts("/home/alex/.ssh/known_hosts");

Session session = jsch.getSession("alex", "ssh.example.net", 22);
ProxySOCKS5 proxy = new ProxySOCKS5("127.0.0.1", 1080);
session.setProxy(proxy);

アプリケーションの SSH 認証とセッション接続の前にこれを実行します。known-hosts ファイルを想定する SSH サーバーの識別情報で用意し、その検証をプロキシ経由でも維持します。

プロキシオブジェクトの資格情報インターフェースは、必要に応じて仲介者に対して認証します。SSH ログインの代わりにはなりません。公的な仲介者が許可される、公開到達可能な SSH サーバーでは、SOCKS5 プロキシリストが ProxySOCKS5 の候補を提供します。示されているプロキシアカウント不要の形式を使い、ノードが実際の SSH ホストとポートを許可することを確認してください。

リスナー要件では、1 つの所定ターゲットへの固定転送と、クライアントごとの動的 SOCKS ネゴシエーションを区別します。無関係なトンネル方式はそのサーバーを提供しません。「SOCKS サポート」を両方の役割と解釈するのではなく、インストール済みライブラリの正確な公開機能を確認してください。

関連記事