Invierta ssh al servidor en la nube desde Raspberry

Invierta ssh al servidor en la nube desde Raspberry

Tengo un caso de uso en el que tengo 6 de mis Raspberry Pi detrás de un firewall privado y necesito acceder a ellos desde mis sistemas locales. Entonces se me ocurrió la arquitectura que se muestra a continuación.

  1. Desde mi rpi ssh inverso a un puerto específico de mi servidor en la nube
  2. Y desde mi sistema local conéctese a los rpi usando mi servidor en la nube como 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 |
    +--------+              |    +---------+             +----------------+
    

Inicialmente, utilicé comandos SSH directos, pero encontré problemas como que la conexión se vuelve obsoleta y no responde después de un período de tiempo. Entonces, me mudé a autossh. Empecé a systemdhacer esta operación.

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

Esto funciona bien, para mis 6 dispositivos. Pero cuando intento conectar más dispositivos, el túnel no parece conectarse (es decir, el túnel establecido desde rpi, pero no hay nada en netstat -lnptel servidor de la nube).

Ahora necesito saber si este es el enfoque correcto para resolver este caso de uso. Teniendo en cuenta eso, este recuento de 6 rpm puede aumentar a 20 o 30 en el futuro. ¿Alguna sugerencia de mejora?

información relacionada