2008-06-20

ssh によるポートフォワーディング(リモート→ローカル)

First Try

リモート側のポートに対するアクセスを転送するには -R オプションを用いる.

$ ssh -N -R 1234:intraserv:4321 publicserv

これによって,publicserv のポート 1234 に対するアクセスが,このコマンドを実行したマシンから見た intraserv:4231 に転送される.

ただし,デフォルトでは publicserv のループバックアドレスのみとバインドされるので publicserv 以外からのアクセスが不能である.これは /etc/ssh/sshd_config に以下の行を設定することで解決できる.

GatewayPorts yes

Second Try

しかしそれではちょっと危険なので,ローカル→リモートのポートフォワーディングと組み合わせてみる.

/etc/ssh/sshd_config を元に戻してから,先ほどと同様に

$ ssh -N -R 1234:intraserv:4321 publicserv

とする.publicserv においては localhost:1234 で intraserv:4321 にアクセスできるが,外部からは接続不能である.そこでアクセスしたいマシンで以下のようにする.

$ ssh -N -L 1234:localhost:1234 publicserv

これで万事OK.

0 件のコメント:

コメントを投稿