クライアントと2つのサーバー間にshhトンネルを確立する方法を理解しようとしています。 ServerA 経由で ServerB に接続するにはクライアントが必要です。
事実は次のとおりです。
- クライアントはパブリックIPを介してServerAに接続できます。
- クライアントが ServerB に接続できません。
- ServerA は ServerB に接続できません。 (サーバーはServerAとNATの後ろにリモートで隔離されています。)
- ServerB はパブリック IP を介して ServerA に接続できます。
- ServerA と ServerB の両方がホストに接続できません。 (クライアントにはパブリックIPはありません)。
これを設定する正確なsshコマンドは何ですか?
答え1
クライアントをサーバーAに接続し、サーバーBをサーバーAに接続し、サーバーAを介してトンネリングできます。
クライアント側から:
ssh -L 2200:127.0.0.1:2200 user@serverA
サーバーBで:
ssh -R 2200:127.0.0.1:22 user@serverA
その後、クライアントからサーバーBにSSHを実行するには、クライアントで次のように実行します。
ssh -P 2200 user@serverB
答え2
それが私が見つけた方法です。
クライアント側から:
ssh -A user@ServerB
サーバーBで
ssh -N -R 44444:localhost:22 user@ServerA -p 2222
-p 2222
私の場合、SSHサーバーはデフォルトポートでリッスンしていませんでした。22
クライアント側から:
ssh user@localhost -p 44444