ソケット付きのリバースSSHトンネル

ソケット付きのリバースSSHトンネル

リバース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 制御接続を開始できるとします。ただし、サーバーで複数のポートを使用する必要があります。私の目的に合わせて使用​​できるポートは十分ですが、これを行うためのよりエレガントな方法が必要です。

関連情報