リモートポート転送
リモートポート転送を使用して、Secure Shell サーバホストで実行されているアプリケーションクライアントからデータを安全に転送できます。リモートポート転送を構成する時は、データの転送に使用する任意のリモートポート、およびデータを受信する着信先ホストとポートを指定します。リモートポート転送は次のように動作します。
-
Secure Shell 接続が確立されると、Secure Shell サーバは、指定したリスニングポートを使用して、Secure Shell サーバホスト上のリスニングソケットを開きます。
-
Secure Shell サーバホストで動作するクライアントアプリケーションは、(アプリケーションサーバホストおよびポートに直接接続する代わりに) リスニングポートに接続するように構成されます。そのクライアントが接続を確立すると、すべてのデータがリスニングポートに送信され、Secure Shell サーバにリダイレクトされます。
-
Secure Shell サーバはデータを暗号化し、SSH トンネルを通じて安全に Secure Shell クライアントにデータを送信します。
-
Secure Shell クライアントは、データを受信し、解読し、サーバアプリケーションが使用する (Secure Shell クライアントホスト上の) 宛先ホストおよびポートにリダイレクトします。
-
サーバアプリケーションからの戻りデータは Secure Shell クライアントに送られ、Secure Shell クライアントは戻りデータを暗号化し、SSH トンネルを通じて Secure Shell サーバに安全に送信します。Secure Shell サーバはデータを解読し、元のクライアントアプリケーションにデータをリダイレクトします。
リモートポート転送の場合の一般的なコマンドライン構文は次のとおりです。
ssh -R listening_port:app_host:hostport user@sshserver
次の図に、リモートポート転送構成の例を示します。
HostA では、アプリケーションサーバと Secure Shell クライアントが動作しています。HostB では、Secure Shell サーバとアプリケーションクライアントが動作しています。HostB のポート 2222 に送信されるすべてのデータが、HostA のポート 222 に転送されます。この配置では、通過中のすべてのデータが安全に暗号化されます。これを構成するコマンドは次のとおりです。
ssh -R 2222:localhost:222 user@HostB