やりたいことは、localhost:8888 → YYY.YYY.YYY.YYY:8888 にポートフォワードしたいということでしょうか?
踏み台(XXX.XXX.XXX.XXX)から直接 YYY.YYY.YYY.YYY:8888 に接続できるようであれば、多段にしなくても、以下のコマンドでいいと思います。
(localhost のみアクセスできればいいなら)
[local]$ ssh -f -N -L 127.0.0.1:8888:YYY.YYY.YYY.YYY:8888 -p 50000 user_a@XXX.XXX.XXX.XXX
(公開するなら)
[local]$ ssh -f -N -L 0.0.0.0:8888:YYY.YYY.YYY.YYY:8888 -p 50000 user_a@XXX.XXX.XXX.XXX
※"-f -N" オプションを付けるとバックグラウンドで起動します。
停止する場合、kill コマンドを利用ください。
リモートサーバーの 8888 番ポートが 127.0.0.1 しか LISTEN していないのであれば、多段にする必要があります。
まずは、ProxyCommand
を使って、localhost → YYY.YYY.YYY.YYY に直接 SSH ログインできることを確認します。
(~/.ssh/config)
Host remote1
User user_b
HostName YYY.YYY.YYY.YYY
ProxyCommand ssh -W %h:%p -p 50000 user_a@XXX.XXX.XXX.XXX
[local]$ ssh remote1
※user_b@YYY.YYY.YYY.YYY にログインできることを確認
次に、ポートフォワードを試します。
上記コマンドに -L
オプションを付けて、ssh -f -N -L 127.0.0.1:8888:127.0.0.1:8888 remote1
としてもいいですし、config で LocalForward
を設定してもいいです。
(~/.ssh/config)
Host portforward1
User user_b
HostName YYY.YYY.YYY.YYY
ProxyCommand ssh -W %h:%p -p 50000 user_a@XXX.XXX.XXX.XXX
LocalForward 127.0.0.1:8888 127.0.0.1:8888
#LocalForward 0.0.0.0:8888 127.0.0.1:8888
[local]$ ssh -f -N portforward1
※localhost:8888 → YYY.YYY.YYY.YYY:8888 にポートフォワードされることを確認
なお、ssh のポート番号は、踏み台(XXX.XXX.XXX.XXX)は 50000、リモートサーバー(YYY.YYY.YYY.YYY) は 22 と想定しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。