Raspberry からクラウド サーバーへのリバース SSH

Raspberry からクラウド サーバーへのリバース SSH

私のユースケースでは、プライベートファイアウォールの背後に6台のRaspberry Piがあり、ローカルシステムからそれらにアクセスする必要があります。そこで、以下に示すアーキテクチャを思いつきました。

  1. 私のrpiリバースsshからクラウドサーバーの特定のポートへ
  2. そして、ローカルシステムからクラウドサーバーをジャンプボックスとして使用してrpiに接続します(SSH ProxyJump)

                        Firewall
    +--------+              |    +---------+             +----------------+
    | Rpi 1  |-> 2101/tcp ->| -> |         | <- 22/tcp - | Local System 1 |
    +--------+              |    |         |             +----------------+
                            |    |         |
    +--------+              |    |  Cloud  |             +----------------+
    | Rpi 2  |-> 2201/tcp ->| -> | Server  | <- 22/tcp - | Local System 2 |
    +--------+              |    |         |             +----------------+
       ...                  |    |         |
    +--------+              |    |         |             +----------------+
    | Rpi 6  |-> 2601/tcp ->| -> |         | <- 22/tcp - | Local System 3 |
    +--------+              |    +---------+             +----------------+
    

最初は直接 SSH コマンドを使用していましたが、一定時間が経過すると接続が古くなり応答しなくなるなどの問題が発生しました。そこで、 に移行しました。この操作を実行するためにautosshを開始しました。systemd

autossh -Nf -M 0 -o ServerAliveInterval=120 -o ServerAliveCountMax=3 -R 2101:127.0.0.1:22 root@my-server-ip

これは、6 台のデバイスでは正常に動作します。しかし、さらにデバイスを接続しようとすると、トンネルが接続されていないようです (つまり、rpi からトンネルが確立されていますが、netstat -lnptクラウド サーバーには何も表示されません)。

ここで、このユースケースを解決するための適切なアプローチかどうかを知る必要があります。そう考えると、この 6 rpi の数は将来的に 20 または 30 まで増える可能性があります。改善のための提案はありますか?

関連情報