SSH のポートフォワード(port forward)の特殊な例

A1 というクライアントから B1 というサーバーに SSH コネクション c を張っている際、ノード A2 から c を経由して ノード B2 にコネクションを張ることができます。例えば、次のように A1 のポート 3128 を B2 の 3128 にフォワードしているとします。

A1$ ssh -L3128:B2:3128 B1

このままでは、A1 上では B2 にポート 3128 がフォワードされますが、A1 外からはこのフォワードリンクを利用することができません。これは、デフォルト動作です。セキュリティに確信がある場合は、これを

A1$ ssh -g -L3128:B2:3128 B1

とすることで、A2 から A1 のポート 3128 に接続すると、そのリンクは B2 の 3128 にフォワードされます。SSH のマニュアルには、こっそりと記述されていますが、例えば VMware の host only ネットワークなどを使い、ゲスト OS 上からのポートフォワードをホスト OS から使いたいとき*1便利です。

*1:そんなマニアックなことをせんでものー。