パブリックIPアドレスなしでどこからでも組み込みLinux(Cと呼ばれる)に直接接続できるようにしたいです。
Cは(SSH -Rを使用して)サーバーへの接続を確立できます。サーバーにSSHを接続すると、組み込みLinuxでSSHを使用できます。
しかし、まずサーバーにSSHを接続しなくても、クライアントからCにSSHを接続できるようにしたいと思います。 (SSH -Rを使用してCからクライアントへの接続を確立することはできません。)
可能ですか?それではどうですか?
答え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