パブリック 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