踏み台のサーバー(203.0.113.5)には SSH で入れる。その奥にある管理画面(192.0.2.20 の80番)を手元のブラウザで見たい
【疑問】外から社内の DB の画面を見たい。SSH のポート転送 -L・-R・-D と X11 転送 -X【LPICレベル1】
前提のおさらい。SSH は鍵でログインできて、通信は全部暗号化される。ポート番号はサービスの入口で、1023 までは root でないと待ち受けられない
>>1
ローカルのポート転送 -Lssh -L 8080:192.0.2.20:80 user@203.0.113.5
手元の8080番に来たものを、SSH の中を通して、踏み台から 192.0.2.20 の80番へつなぐ。ブラウザで http://localhost:8080/ を開く
>>3
書き方の順番が覚えられん
>>4-L [手元で待つアドレス:]手元のポート:行き先のホスト:行き先のポート(ssh の man)
行き先のホストの名前は、踏み台の側から見て解決される。踏み台そのもののサービスなら行き先を localhost にする(-L 8080:localhost:80)
>>5
手元のポートを1024より小さくすると、待ち受けに root が要るから、8080 みたいな大きい番号を使う
逆に、家のマシンの SSH に外のサーバー経由で入れるようにしたい
>>7
リモートのポート転送 -Rssh -R 2222:localhost:22 user@203.0.113.5
サーバーの2222番に来たものを、手元の22番へつなぐ。サーバーで ssh -p 2222 user@localhost すると家のマシンに入れる
>>8
サーバーの2222番は、ほかのマシンからも使えるん?
>>9
既定ではサーバーのループバック(127.0.0.1)にだけ付く。ほかのマシンからも使わせるのは sshd_config の GatewayPorts(既定 no)。転送そのものを許すかは AllowTcpForwarding(既定 yes)
>>3
いろんな行き先に、まとめて SSH 経由でつなぎたい
>>11
ダイナミック転送 -D。ssh -D 1080 user@203.0.113.5 で手元の1080番が SOCKS プロキシになって、ブラウザのプロキシに localhost:1080 を指定すると、行き先ごとに転送してくれる
>>12
転送だけしたいのに、ログインのシェルが開くのが邪魔
>>13
-N でリモートのコマンドを実行しない、-f で裏に回る。ssh -f -N -L 8080:192.0.2.20:80 user@203.0.113.5
サーバーの GUI のアプリを、手元の画面に出したい
>>15
X11 転送。ssh -X user@203.0.113.5 でつないで、そこで xclock などを起動すると、手元の X サーバーに表示される。-Y は信頼する転送(X の SECURITY 拡張の制限を受けない)
サーバー側は sshd_config の X11Forwarding(man の既定は no、Debian の設定ファイルは yes になってた)と、xauth コマンドが要る
>>16
Debian の ssh は、既定の設定では -X でも -Y と同じ扱いになる(ForwardX11Trusted。ssh の man の Debian 向けの注記)
>>16
つないだ後の DISPLAY はどうなってるん
>>18localhost:10.0 のようになる。X11DisplayOffset の既定が10で、本物の X サーバーとぶつからない番号から使う。X のディスプレイ番号 n は TCP なら
番ポートに当たる
>>2
試したマシンには sshd が動いてないから、転送そのものは試してない。書式と既定値は ssh・sshd_config の man と、Debian のパッケージに入ってた設定ファイルで確かめた
>>3
-L は手元から向こうへ、-R は向こうから手元へ、-D は SOCKS、-N と -f で転送だけ、GUI は -X か -Y で DISPLAY は localhost:10.0。管理画面は -L で見られた
管理人のひとこと
ssh -L [アドレス:]手元のポート:行き先:ポート ユーザー@サーバー:手元のポートへの接続をサーバー経由で行き先へ。行き先の名前はサーバー側で解決する。ssh -R [アドレス:]サーバーのポート:行き先:ポート:サーバーのポートへの接続を手元側へ。既定でサーバーのループバックにだけ付く(GatewayPorts)。転送の可否は AllowTcpForwarding。ssh -D ポート:SOCKS プロキシ。-N でコマンドを実行しない、-f で裏に回る。1023 以下の手元のポートは root が要る。- X11 転送:
ssh -X(-Y は信頼する転送)。サーバーは X11Forwarding yes と xauth が必要。DISPLAY は localhost:10.0(X11DisplayOffset の既定10)。