Vamos a tener involucradas 3 maquinas (ver otro post SSH Inverso para comprender el como y porque de cada maquina)
pc1 > maquina donde estoy sentado y quiero realizar la conexion ssh a otra pc.
pc2 > maquina a la cual quiero acceder via ssh (y no tiene salida web a ssh)
pc3 > maquina que tiene acceso via ssh desde la web port 5901
Primera explicacion: Como hacerlo entre maquinas LINUX
PC a la que nos vamos a conectar (pc2)
#1 Activamos un servidor VNC corriendo en el puerto 5901, para ello en una terminal:
$ vnc4server :01
donde :01 hara que se ejecute VNC en el puerto 5901
nota: yo en el ejemplo utilizo vnc4serverque se encuentra en los repositorios de ubuntu, pero se podria usar cualquier Server VNC
#2 Creamos la conexion SSH Inversa con la pc que tiene salida directa a internet (Proxy)
$ ssh -X -C -R 5901:localhost:5901 user@ipPC3
donde -X permite la ejecucion de aplicaciones a modo grafico
-C habilita la compresion de paquetes (mejora rendimiento)
-R crea la conexion SSH INVERSA
Listo, ya tenemos el servidor VNC corriendo a travez de un tunel inverso conectado a un proxy que tiene abierto los puertos 5901
PC desde la que nos conectaremos (PC1)
#1 Conectaremos una sesion SSH en modo LISTEN en el proxy, en una terminal:
$ ssh -X -C -L 5901:localhost:5901 user@ip(PC3)donde -L habilita el modo Listen (escucha) SSH en el proxy
#2 Conectamos con nuestro cliente VNC, en la misma terminal donde ejecutamos anteriormente, cuando ya estemos dentro del proxy colocamos:
$ vncviewer:5901Listo, ya vamos a estar viendo la pantalla remota de la pc2 en nuestra PC.
Segunda explicacion: Como hacerlo entre maquinas WINDOWS
Para ello vamos a necesitar los siguientes programas:
Plink : programa que nos permite ejecutar comandos SSH en consola CMD
UltraVNC : VNCserver y VNCviewer para windows
PC a la que nos vamos a conectar (pc2)
Como lo hacemos?
1# Instalamos UltraVNC y una vez que el server este corriendo, configuramos para que conecte con el puerto 5901
2# Establecemos conexion SSH Inversa desde CMD con plink.
entramos a la carpeta donde se encuentra Plink (ej. C:>/escritorio/) y en consola colocamos:
plink -X -C -R 5901:localhost:5901 user@ipPC3Ya tenemos la conexion VNC a travez de SSH Inverso al proxy
PC desde la que nos conectaremos (PC1)
#1 Entramos a la carpeta donde se encuentra Plink (ej. C:>/escritorio/) y en consola colocamos:
plink -X -C -L 5901:localhost:5901 user@ipPC3
#2 Ejecutamos VNCviewer, y cuando nos pide el host colocamos:
localhost:5901Listo
Nota: sepase que no me gusta Windows para nada, pero aquellos usuarios de Windows que osaron despotricar contra Linux muchas veces, no podrian estar haciendo nada de esto sin las herramientas y los conocimientos compartidos por la comunidad GNU/Linux
Ojala les sea util, recuerden si hacen Copy-Paste de este post que he creado, citen la fuente
Toda la informacion aqui publicada tiene licencia GPLv2