Conexión SSH a Raspberry fuera de la red local

Bueno este post es por la universidad que espero les sirva a los que están en Arquitectura de Computadoras 2 o con necesidades similares.

Para lograr una conexión SSH fuera del área local a una raspberry(u otro dispositivo en general que tenga SSH), de manera sencilla, me parece esta, por distintos motivos(podría ser habilitando puertos en el router, solo que esto según la operadora puede llegar a ser muy difícil de lograr por sus políticas entre otras cosas), entonces continuemos, se necesita instalar Ngrok
Screenshot_2020-05-18_18-04-53

En el caso de la Raspberry se necesita la versión Linux(ARM) o en consola:

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip

luego se hace el unzip tal como explica el tutorial de ngrok en consola:

unzip ngrok-stable-linux-arm.zip

Lo siguiente es registrarse y/o ingresar en ngrok, y una vez ahí se van a este link donde les mostrara el token para su cuenta
Una vez sabiendo su token ejecutan lo siguiente en la Raspberry:

./ngrok authtoken XXXXXtuTokenAquiXXXXXXX

con eso estaría configurado, solo falta poner a la escucha el puerto 22 que se utiliza SSH, de la siguiente forma

./ngrok tcp 22

es entonces cuando les muestra el Host y puerto al que apuntara
Screenshot_2020-05-18_18-25-33

Lo cual muestra en Forwarding la dirección TCP y puerto que nos habilitan para trabajar con nuestra Raspberry.

En este caso era 0.tcp.ngrok.io y puerto 17271, es decir que en vez de nuestra ip local y puerto por defecto(22), se debe especificar estos para acceder fuera del área local a nuestra Raspberry, es decir:

ssh pi@0.tcp.ngrok.io -p17271

y esito sería :D

-Hackers are People Too 😜