GNU/Linux >> Tutoriales Linux >  >> Linux

Ssh:¿Escritorio remoto a través del túnel inverso Ssh para reemplazar a Teamviewer?

Quiero abrir una sesión de escritorio remoto desde mi computadora portátil al escritorio a través de mi túnel SSH (inverso). Eso debería ser simple (o al menos factible), ¿verdad? Hasta ahora he estado usando Team Viewer para iniciar sesión en el escritorio remoto. Me gustaría lograr resultados similares sin Team Viewer.

Así es como se ve mi túnel SSH:

laptop--->nat--->middleman<--nat<--desktop

Todas las máquinas ejecutan Linux (principalmente Kubuntu 12.04 u OpenSuse 12.3). No puedo cambiar ningún puerto ni realizar ningún cambio de configuración en los enrutadores nat.

Describiré mi túnel SSH porque comprenderlo parece ser necesario para resolver el problema de VNC/escritorio remoto que es el núcleo de mi pregunta. Con respecto a esta pierna:

middleman<--nat<--desktop

…así es como se establece:

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]

Con respecto a esta pierna:

laptop--->nat--->middleman

Puedo conectarme al intermediario de la siguiente manera:

[email protected]:~$ ssh -i ~/.ssh/id_rsa [email protected]  

Sin embargo, lo que realmente necesito hacer es conectarme directamente al escritorio, no al intermediario. Para hacer eso, uso netcat ("nc") en intermediario. En base a esto, parece que se requiere nc. Así que edito mi archivo de configuración SSH en la computadora portátil para usar ProxyCommand y nc:

[email protected]:~/.ssh$ nano config

Los contenidos son:

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Donde middleman_fqdn es como "middleman.com"

Luego simplemente me conecto al "escritorio" en un solo paso:

[email protected]:~$ ssh family_desktops -p 1234

(Conseguí que esto funcionara en base a la ayuda aquí y aquí y otras preguntas relacionadas que hice. He hecho un montón de preguntas sobre este tema porque he estado lidiando con él durante muchas semanas).

Con esta conexión SSH llego a un shell completamente funcional en mi computadora llamado desktop . Perfecto.

Ahora solo necesito una solución de escritorio remoto similar a VNC (o similar a TeamViewer) a través de este túnel SSH. ¿Cómo?

Esto es lo que he intentado hasta ahora:

intermediario<–nat<–escritorio

autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]

con esa conexión establecida:

x11vnc -autoport 5901 

Observo para asegurarme de que se conecta al puerto 5901, y lo hace.

laptop—>nat—>intermediario<–nat<–desktop

portátil ~/.ssh/config:

Host family_desktops
  ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Configuración del túnel:

[email protected]:~$ sudo ssh family_desktops

Cliente VNC:

connect to localhost:5901

Esto da un error de "servidor no encontrado"

He probado una serie de variaciones en ProxyCommand, ninguna de ellas exitosa. Obviamente, estoy adivinando qué parámetros deberían estar en ProxyCommand y cuáles deberían estar en la línea de comando ssh. Puedo ver algunos problemas potenciales con mi configuración, pero no he podido descubrir qué hará que todo funcione.

Relacionado:¿Eliminar todos los trabajos en segundo plano?

PD Como mencioné, he hecho varias preguntas sobre esto. Algunos de ellos me llevaron más cerca de la solución y forman la base de mi pregunta actual. Otras de mis preguntas anteriores sobre este tema solo muestran mi ignorancia e incapacidad para hacer la pregunta en la forma correcta. En este punto, esta pregunta actual representa mi mejor capacidad para establecer cuál es mi problema y cuál es la solución que deseo, pero algunas de mis otras preguntas también están abiertas. Aquí hay uno que es relevante.

Respuesta aceptada:

¿Puedes intentar hacer el segundo paso sin hacer el nc? Es decir, haz el VNC con solo -L y -R. Creo que el problema es que su sesión de netcat se está conectando nuevamente a una ya abierta. Entonces, cuando haga las cosas de VNC, no use netcat.


Linux
  1. Ssh – ¿Redirigir Stdout sobre Ssh?

  2. Ctrl-c Manejo en sesión Ssh?

  3. Túnel vpn de acceso remoto SSH

  4. Copie datos a través del túnel SSH en múltiples saltos

  5. Conexión SSH a través de un túnel SSH inverso (remoto)

Cómo usar SSHFS para montar directorios remotos sobre SSH

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

Solución de problemas de escritorio remoto

Ssh:¿cómo funciona el túnel Ssh inverso?

4 formas de transferir archivos entre sistemas remotos y locales a través de SSH

Cómo usar el montaje SSHFS con directorios remotos a través de SSH