クライアントからサーバー経由で組み込み Linux への SSH

クライアントからサーバー経由で組み込み Linux への SSH

パブリック IP アドレスを持たない組み込み Linux (C と呼ばれる) にどこからでも直接接続できるようにしたいと考えています。

C はサーバーへの接続をセットアップできます (SSH -R を使用)。サーバーに SSH 接続すると、組み込み Linux に SSH 接続できます。

ただし、最初にサーバーに SSH 接続しなくても、クライアントから C に SSH 接続できるようにしたいです。(C からクライアントへの SSH -R による接続を設​​定できません)

これは可能ですか?もし可能であれば、どのようにすれば可能ですか?

答え1

これはかなり簡単に実行できます。1 つの方法は、SSH のリモート ポート転送を使用することです。これにより、C はサーバーにポートを転送するように指示します。次のようになります。

ssh -R 2222:localhost:22 server

このコマンドを C から実行すると、サーバーはポート 2222 へのすべての接続を取得し、ポート 22 の C に転送するように指示します。

同様に、ファイアウォール ルールを使用してサーバー上でポート転送を設定することもできます。

答え2

転送されたポートに接続できるようにするには、次の 4 つが必要です。

  • への最初の引数としてサーバーのパブリック IP/ホスト名を指定します。-Rそうしないと、 のみをリッスンすることになりlocalhost、サーバーの外部からはアクセスできなくなります。
  • でサーバーを設定するとGatewayPorts、転送されたポートが外部からアクセスできるようになります。
  • スイッチを使用して-g、基本的にクライアント側から同じことを許可する
  • 2222サーバーのファイアウォールでポートを開きます。

コマンドは次のようになります。

ssh -g -R server:2222:localhost:22 server

関連情報