sshでリバーストンネル

昨日nmapを使ってサーバBからサーバAへの開いているポートを調査したんですが、一切空いていないことが判明。
しかしながらサーバAからサーバBへはsshが通っているので、リバーストンネルを作成してサーバBからサーバAへ任意のポートで通信することにしました。

現状の整理

条件としてはこんな。
AからBへはssh(TCP/22)で通信できる。BからAへはなにも通信できない(FWでブロックされている)。

 +---+                  +---+
 |   | ----(TCP/22)---> |   |
 | A |                  | B |
 |   | <---(通信不可)--|   |
 +---+                  +---+

AからBへリバーストンネルを作成する。

Bのlocalhost:9999をAへのTCP/22としてトンネルを作成。
A上でこう叩く。

$ ssh -R 9999:localhost:22 B