私はGoogleでSSHトンネリングの基本を学びました。
私は次の興味深い質問を見ました。リバースSSHトンネリングはどのように機能しますか?
しかし、まだ少し混乱しています。もっと具体的に言えば[Eメール保護]部分。
したがって、答えの1つによれば、4つのユースケースがあります。これが私がそれらを理解する方法です。間違っていたら訂正してください。簡単にするために、ローカルコンピュータでsshコマンドを実行するとします。
ssh -L 123:localhost:456 [email protected]
- これにより、ローカルコンピュータのポート123からexample.comのポート456にすべてのトラフィックが転送されます。ただし、example.com は独自のローカルホストからのトラフィックを表示できます。
ssh -L 123:google.com:456 [email protected]
- これにより、ローカル コンピュータのポート 123 から google.com のポート 456 にすべてのトラフィックが転送されます。次に、example.comのSSHセッションを確立します。これは理解できませんが、なぜ私たちに必要なのですか?[Eメール保護]この場合は?
ssh -R 123:localhost:456 [email protected]
- これで SSH セッションが確立されます。[Eメール保護]example.comのポート123からローカルコンピュータのポート456にすべてのトラフィックを転送します。これにより、自分のローカルコンピュータからlocalhostからのトラフィックが表示されます。
ssh -R 123:google.com:456 [email protected]
- これで SSH セッションが確立されます。[Eメール保護]example.com のポート 123 から google.com のポート 456 にすべてのトラフィックを転送します。 #2とは異なり、example.comはリモートホストとして使用されます。
だから私の質問は:なぜ私たちに必要なのですか?[Eメール保護]#2に?私に何の問題もあるのか?
修正する
さて、今知っていると思います。私は以下について誤解があります[Eメール保護]セクションを見て、それをオプションと見なしてください。 SSHセッションが最初に確立され、次にport:host:portが評価されるようです。
例:#2の場合は、まずexample.comへのセッションを確立してから、トラフィックをgoogle.com:456に転送します。 #1 の場合は、まず example.com にセッションを確立してから、トラフィックを localhost:456 (同じホスト) に転送します。
答え1
2番目のケースは、example.comが[google.com]ホストに接続できますが、ボックスでは接続できない場合に便利です。たとえば、VPN接続が複数のボックスに制限されており、リストにないホストにアクセスしたいとします。 ssh -L 123:target.host.com:456[Eメール保護]。
したがって、基本的な使用法はネットワーク内にジャンプするか、ネットワーク外にジャンプすることです(ある種のプロキシ/ゲートウェイにssh)。
最後に、ターゲットサーバーには、指定されたホストからの接続のみを許可するファイアウォールの制限があります。