GNU/Linux >> Linux の 問題 >  >> Linux

SSHトンネリングを使用して制限付きサーバーにアクセスする方法

sshデータの送信に加えて、sshプロトコルは2つのホスト間で他のトラフィックをトンネリングできます。最も一般的なsshトンネルはリモートおよびローカルです。

SSHトンネリングまたはSSHポート転送は、クライアントとサーバーマシンの間に暗号化されたSSH接続を作成する方法であり、これを介してサービスポートを中継できます。

ポートフォワーディングを使用したローカルSSHトンネル

直接アクセスできないリソースにアクセスしたい場合は、ローカルsshトンネルを使用できますが、アクセスできるsshサーバーはアクセスできます。ここにいくつかのシナリオがあります。

リモートサーバーへのプロキシ

上の画像では、青いホストはhttp://192.168.0.3に到達できません ただし、192.168.0.2にSSH接続できます。 青いホストで実行される次のsshコマンド 青いホストが赤いホストに到達できるようになります。

ssh -L 8080:192.168.0.3:80 [email protected]

これで、青いホストがブラウザを開くことができます。http://localhost:8080にアクセスしてください。 、192.168.0.3でホストされているウェブページが表示されます。

ローカルポートフォワード

上の画像では、青いホストがポート80で赤いホストに接続しようとしていますが、その間にファイアウォールがあり、これを拒否しています。青いホストは赤いホストにsshできるので、そのポートにアクセスするためのローカルポート転送sshトンネルを作成できます。

青いホストでのコマンドは次のようになります:

ssh -L 8080:192.168.0.2:80 [email protected]

これで、青いホストがブラウザを開いてhttp://localhost:8080に移動すると 彼らは、赤いサーバーがポート80にあるものをすべて見ることができます。

ローカルポート転送構文

ローカルsshポート転送トンネルを作成するためのこの構文は次のとおりです。

ssh -L <LPORT>:<RHOST>:<RPORT> <GATEWAY>
ポートフォワーディングを使用したリモートSSHトンネル

このシナリオでは、リバースsshトンネルを作成しています。ここでは、一方向にsshトンネルを開始し、そのトンネルを使用して反対方向にsshトンネルを作成できます。これは、ドローンコンピュータをネットワーク内にドロップして、「電話で家に帰る」場合に便利です。その後、自宅に電話をかけると、確立されたsshトンネルを介して接続できます。

私たちは緑のホストにいて、青のホストにSSH接続したいと思っています。ただし、ファイアウォールはこの接続を直接ブロックします。ブルーホストはグリーンホストにSSHで接続できるため、それを使用して接続できます。グリーンホストがブルーホストにSSHで接続したい場合は、以前に確立されたこのトンネルに沿って乗ることができます。

青いホストは次のようなsshトンネルを開始します:

ssh -R 2222:localhost:22 [email protected]

これにより、緑のホストのポート2222が開き、青のホストのポート22にポート転送されます。したがって、緑のホストがポート2222でそれ自体にSSHで接続すると、青のホストに到達します。

これで、緑のホストは次のように青のホストにSSH接続できます。

ssh -p 2222 [email protected]

-Nオプションの使用

sshを使用する場合は、-Nを指定できます 確立時にssh接続を介してコマンドを送信する必要がないことをsshに通知するフラグ。このオプションは、実際にプロンプ​​トを受け取る必要がないことが多いため、トンネルを作成するときによく使用されます。

Autossh

autossh コマンドは、トンネルに永続性を追加するために使用されます。 ssh接続が確立されていることを確認し、確立されていない場合は作成するのが仕事です。

これがあなたが認識できるautosshコマンドです。

autossh -N -i /home/blueuser/.ssh/id_rsa -R 2222:localhost:22 [email protected]

-i /home/blueuser/.ssh/id_rsa オプションは、このssh接続を認証するために証明書を使用することを示しています。

これで、トンネルがダウンすると、トンネルは自動的に再接続を試み、成功するまで試行を続けます。再起動しても永続的にするには、sshコマンドをcronジョブとして追加します。


Linux
  1. リモートアクセスを簡素化するためにカスタムSSH接続を構成する方法

  2. SSHトンネリングを設定する方法

  3. Ssh – Sshが許可を求めるのを避ける方法は?

  1. ホームネットワークでSSHおよびSFTPプロトコルを使用する方法

  2. Sshアクセスで新しいユーザーを作成する方法は?

  3. ssh トンネリングのみのアクセス

  1. SOCKS 5 プロキシで SSH を使用するにはどうすればよいですか?

  2. ssh ControlMaster 接続が使用されているかどうかを確認する方法

  3. scp を使用してファイルを別のサーバーにコピーする