ssh -R の応用例

– SSH サーバ A から SSH クライアント B に逆方向に SSH 接続可能にする(双方向SSH)
この方法を使うとポートが閉じている環境にも外部からSSH接続ができるようになります。

B$ ssh -R 12345:127.0.0.1:22 A # (1) 12345 は任意のポート番号
(A にログイン)
A$ ssh 127.0.0.1:12345 # (2)
(A から B に逆にログイン)
B$ echo hello

メリット:
— (2)においてクライアント(B)のIPアドレスを知らなくてもサーバからクライアントに SSH 接続ができるようになります。
— クライアント側(B)の sshd がローカルからしか接続を受けない場合でもサーバ側(A)から接続することができます。
 
デメリット:
— クライアント側(B)にも最低限ローカルから TCP で接続できる sshd (または telnetd) が必要です。
— (2)でユーザ名がサーバ側とクライアント側で異なる場合、クライアント側のログイン可能なユーザ名を知っている必要があります。
— (2)を実行するには(1)の接続を保持し続けなければなりません。

参考: