Lo que tengo es lo mismo que esta pregunta SSH túnel a través de dos servidores para acceder a un servicio web en el puerto 9091 (principalmente porque hice esa pregunta).
Pero la diferencia ahora es que estoy accediendo desde un Chromebook que no puedo usar ProxyCommand
. Todo lo que tiene es el shell de NaCl base que se ejecuta en una pestaña de Chrome sandboxed.
Esta es la "aplicación de shell" que lo ejecuta: https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo?utm_source=chrome-app-launcher-info-dialog
Estas son las preguntas frecuentes con información completa al respecto. https://chromium.googlesource.com/apps/libapps/+/master/nassh/doc/faq.txt
Entonces, una revisión de mi pregunta anterior:
Tengo 3 máquinas:
remotePi
(Raspberry PI, en algún lugar del mundo)localPi
(otro PI de frambuesa, en mi red local, tengo acceso completo a él, incluido root, sin monitor, sin kb, ejecutándose como servidor sin cabeza)Chromebook
(mi máquina local, que es una Chromebook en la misma red local quelocalPi
, limitada pero tiene el SSH según los enlaces anteriores).
remotePi
tiene un túnel SSH constante a localPi
, lo hace llamando al siguiente comando
ssh -N -R 16864:localhost:22 -p 2222 <user_on_lan>@<external_lan_ip>
Puedo acceder a la remotePi
terminal haciendo
Chromebook> ssh <user_on_localPi>@<localPI_ip>
localPi> ssh -l <user_on_remotePi> -p 16846 localhost
Y remotePi
tengo un servicio de demonio (interfaz web) escuchando 9091
.
un "dibujo" de todo:
16864:tunnel:22 9091:service
Chromebook <--local_net--> localPi <--internet--> remotePi
Entonces, lo que necesito es:
Acceda a la interfaz web del servicio daemon en remotePi llamando a mi
Chromebook
navegador127.0.0.1:9091/web/
En mi computadora anterior (que se muestra en la pregunta vinculada, computadora portátil ubuntu) lo estaba haciendo usando ProxyCommand
mi configuración y llamando ssh -L9091:localhost:9091 user_on_remotePi@remotePi -N
, pero ahora estoy en un Chromebook que no puede usarlo y creo que debe haber una manera de hacerlo de todos modos
Entonces me preguntaba sobre 2 posibles soluciones:
algún comando SSH muy inteligente y largo que "reemplazará" lo que
ProxyCommand
estaba haciendo. Siempre veo esto en tutoriales como ese LINK, pero siempre depende del nombre del host, solo tengo el puerto16864
para conectarme.(preferido) agregue algo de magia a la
localPi
configuración SSH que lo hará escuchar en algún puerto no estándar (digamos2222
) y redirigirá automáticamente esa conexiónuser_on_remotePi:localhost:16864
. Entonces, cuando llamo desde Chromebookssh user_on_localPI -p 2222 localPi_ip
,localPi
redirigirá esto al usuario correcto directamente en remotePi.
Como puede observar, soy un novato en la red, mi principal experiencia en el desarrollo de aplicaciones, por lo que cualquier ayuda aquí le estaré extremadamente agradecida.
¿Algunas ideas?
Respuestas:
llegamos allí en el chat
luego en Chromebook,
http://localpi_IP:5678
Entonces, el pi remoto había hecho un SSH -R creando el puerto 16864 en el localpi.
Ya fue capaz de obtener una terminal para su
localpi>ssh [email protected] -p 16864
Raspberry Pi, agregando un -L para abrir el puerto 5678 en su localpi, para que luego pueda conectarse desde un dispositivo, por ejemplo, Chromebook, a su localpi, que va a su remotepi que reenvía a un servidor web en sí mismo / su pi remoto.Entonces hay dos comandos ssh en total. El de su remoto pi a su localpi. Y uno de su localpi a su remotepi.
Acabamos de enmendar el segundo, el de su localpi a su remotepi. Para hacer un túnel a un servidor web en su pi remoto.
En realidad está haciendo un túnel a través de un túnel.
fuente