リバースSSHトンネル(またはそれ以上)を設定したいと思いますOpenSSH_7.4
。目的は、中央サーバー上で何よりもトンネル設定操作を実行する複数のデバイスへのSSH接続を許可することです。中央サーバーには既知のIPがありますが、デバイスにはありません。
私は通常、次のようにデバイスのいずれかでこれを行います。
ssh -R "4001:server:22" -p 22 user@server
これにより、サーバーからデバイスに接続できます。
ssh -p 4001 deviceuser@localhost
これは機能します(そしてデバイスのIPアドレスを知る必要はありません)。
これで、単一のデバイスではなく複数のデバイスに接続しています。各デバイスはリバーストンネルを作成し、サーバーに別々のポートが必要です。さらに、SSHを介してそれぞれに繰り返し接続したいと思います。
だから私は次のソケットを使ってリバーストンネルを設定しようとしました。
ssh -R "~/tmp/device.sock:server:22" -p 22 user@server
サーバーからデバイスに接続するには
ssh -S ~/tmp/device.sock -p 22 deviceuser@device
このデバイスのIPが必要ですが、それは主な問題ではありません。しかし、私はそれを動作させることができないようです。最初のコマンドはソケットを生成しますが、2番目のコマンドを使用すると次のエラーが発生します。
Control socket connect(/home/user/tmp/device.sock): Connection refused
予想される動作は、上記のポート4001のトンネルと同様に、トンネルを介してデバイスに接続できますが、ソケットファイルに基づいていることです。簡潔なリソースが見つからず、私が実際に試してみることができるかどうかを知りたいです。
まず、ポート 4001 のトンネルを作成し、ソケットを使用して SSH 制御接続を開始できるとします。ただし、サーバーで複数のポートを使用する必要があります。私の目的に合わせて使用できるポートは十分ですが、これを行うためのよりエレガントな方法が必要です。