Обратный ssh ​​на облачный сервер из Raspberry

Обратный ssh ​​на облачный сервер из Raspberry

У меня есть вариант использования, когда у меня есть 6 моих Raspberry Pi, находящихся за частным брандмауэром, и мне нужен доступ к ним из моих локальных систем. Поэтому я придумал архитектуру, показанную ниже

  1. Из моего rpi обратный ssh ​​на определенный порт моего облачного сервера
  2. И из моей локальной системы подключаюсь к rpi, используя мой облачный сервер в качестве jumpbox (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 в будущем. Есть предложения по улучшению?

Связанный контент