Tengo una pregunta sobre el túnel ssh. He leido este articulo
Me gustaría hacer que el reenvío X funcione y ejecute algunas aplicaciones X en casa y que se muestren en un sistema remoto:
ssh -X -R 5555:localhost:22 [email protected] -N
En remoto:
ssh -X -p 5555 [email protected]
Luego en casa:
//configure sshd to listen on 5555
ssh [email protected]
//here run some app
¿Debería funcionar?
ssh
x11
ssh-tunneling
xforwarding
wawa235
fuente
fuente
Respuestas:
He dibujado algunos bocetos
La máquina, donde se escribe el comando ssh tunnel se llama »su host« .
Introducción
local:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
significa: conectarse con ssh aconnectToHost
, y reenviar todos los intentos de conexión al puerto local en la máquina llamada , a la que se puede acceder desde la máquina.sourcePort
onPort
forwardToHost
connectToHost
remoto:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
significa: conectarse con ssh aconnectToHost
, y reenviar todos los intentos de conexión al puerto remoto en la máquina llamada , a la que se puede acceder desde su máquina local.sourcePort
onPort
forwardToHost
Su ejemplo
Bueno, si solo desea hacer que el reenvío X funcione, es decir, ejecutar algunas aplicaciones X en la computadora en el hogar y hacer que se muestren en un sistema remoto (llamémoslo computadora de trabajo, porque podría estar en su lugar de trabajo), entonces posiblemente no necesito un túnel ssh en absoluto.
Iniciar aplicaciones X sin túnel
¿Puedes simplemente pasar de la computadora del trabajo a la computadora de tu casa? Si es así, cuando está sentado en la computadora del trabajo y desea iniciar una aplicación X que se ejecuta en la computadora de su hogar pero se muestra en la computadora del trabajo , debe escribir (en la computadora del trabajo):
ssh -X homeuser @ homecomputer firefox
Esto iniciará firefox en la computadora de su hogar y lo mostrará en la máquina donde escribió este comando, por ejemplo, la computadora de su trabajo.
La computadora oculta necesita un túnel
Esta es la imagen número 3 de mis bocetos. Muchas veces no se puede acceder directamente a la computadora doméstica desde Internet, porque está detrás de un firewall o está oculta a través de NAT (desde un enrutador). Entonces puedes usar un túnel.
En su computadora hogareña azul (
yourhost
) usted escribe:donde
5555
está el puerto verde y22
es el puerto rosa en la imagen.Si ahora está en el trabajo, en el
remotehost
, y se conecta al puerto verde5555
, su conexión se canaliza / reenvía al puerto rosa de la computadora de su hogarlocalhost
(es decir, la computadora azul de su hogar). Ahora tiene que escribir en su computadora de trabajo:que iniciará firefox en la computadora de su casa (
yourhost
) y lo mostrará en la máquina donde escribió este comando, por ejemplo, la computadora de su trabajo (remotehost
).fuente
Debe especificar la pantalla remota que desea reenviar. En remoto:
Para reenviar la
:0
pantalla.Luego, en ese shell (ahora ejecutándose en su máquina doméstica), ejecute:
para averiguar cuál es la pantalla reenviada. Será algo así
localhost:10
, lo que significa que debe hacer una conexión TCP en el puerto 6010 para conectarse a la pantalla:0
en la máquina remota (:0
lo que significa conectarse a algún socket de dominio Unix en algo así/tmp/.X11-unix
)Luego, para que una aplicación en su máquina se muestre en la pantalla del servidor remoto, solo es cuestión de decirles que usen
localhost:10
:por ejemplo.
Tenga en cuenta que, eso es un túnel sobre un túnel.
fuente