Table of Contents
X11 Forwarding
forward X X11 DISPLAY ssh
Queremos abrir desde un cliente aplicaciones graficas (por ejemplo xeyes) que estan instaladas en el servidor.
Desde cliente GNU/Linux a servidor GNU/Linux
1. (Servidor) Editar:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak sudo vim /etc/ssh/sshd_config
Y asegurarnos que la siguiente lineas aparece:
... X11Forwarding yes ...
2. (Servidor) Reiniciar demonio SSH:
sudo /etc/init.d/ssh restart
3. (Cliente) Editar:
sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak sudo vim /etc/ssh/ssh_config
Y asegurarnos que la siguiente lineas aparece:
... ForwardAgent yes ForwardX11 yes ...
4. (Cliente) Conectarse al servidor:
ssh -Y usuario@nombre.servidor.com
Y lanzar la aplicacion (debe estar instalada en el servidor):
xeyes
Cliente Windows a servidor GNU/Linux
Instalar Cygwin con los servidores X, el paquete xorg-server
Puede que tengamos un icono para arrancar el servidor X de forma independiente.
En cualquier caso podemos arrancar uno desde la linea de comandos del cygwin con X -multiwindow.
Si arranca bien veremos el simbolo de X en los iconos al lado del reloj.
Ya tenemos un servidor X escuchando en localhost:6000. No cerrar la ventana de cygwin.
Ahora toca hacer tunel. Putty incorpora algo par aexportar las X directamente. A manija, sería algo como
# ssh -R 6070:localhost:6000 usuario@servidordestino
tras esto hacer:
# export DISPLAY=localhost:70.0
El 6070 es un ejemplo, que sea mayor que el 6010 es suficiente. Para probar un clásico xeyes o xclock y a correr.
Otra manera: Tenemos que tener instalado en el cygwin dentro de X11 el paquete xorg-server y ejecutamos:
# x -multiwindow
En nuestra máquina habilitamos que puedan exportar las X. Primero exportamos el display de las X:
# export DISPLAY=localhost:0
Y habilitamos las X:
# xhost +
Nos conectamos en el servidor remoto:
# ssh servidor
Ahora exportamos el display a nuestra IP:
# export DISPLAY=10.94.110.152:0
Y ya podemos abrir las x, xclock, etc…
GNU/LINUX - corkscrew
Instalar corkscrew
#ssh -X -R 6020:localhost:6000 -p 443 -F conectar root@lobo99.mine.nu
donde conectar es:
ProxyCommand /usr/bin/corkscrew <proxy> 80 %h %p clave
y clave es:
usuario_proxy:contraseña
En el fichero /etc/ssh/ssh_config de la máquina cliente
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
Tunnel yes
Si hago un:
#echo $DISPLAY
localhost:10.0
Cambio de usuario
Nos conectamos a una máquina y luego queremos cambiar de usuario y abrir las X. Con la opción -X habilitas forward de las x, también es con la opción -o ForwardX11=yes
# ssh -X root@servidor
Ahora se abre xclock
Si cambiamos de usuario no funciona
# su - usuario # xclock X11 connection rejected because of wrong authentication. Error: Can't open display: localhost:10.0
Al cambiar de usuario tenemos que exportar el DISPLAY y añadir el usuario a xauth. Antes de cambiar de usuario miramos estas variables:
# ssh -X root@servidor
# echo $DISPLAY localhost:10.0
# xauth list servidor/unix:10 MIT-MAGIC-COOKIE-1 8403a4c4352d32a91ba4aaf100dea4eb servidor/unix:11 MIT-MAGIC-COOKIE-1 6c9e0e5a530e5975c240dd633de514ee
Nos fijamos en la linea de nuestro display, que es la 10, es decir, la que pone unix:10 Ahora cambiamos de usuario y añadimos cambiamos las variables:
# su - usuario # export DISPLAY=localhost:10.0 # xauth add servidor/unix:10 MIT-MAGIC-COOKIE-1 8403a4c4352d32a91ba4aaf100dea4eb
Y ya se abre xclock.
No funcionan X con un usuario (FALTACOMPROBAR)
Si al cambiar de usuario nos da el error:
# xclock No protocol specified Error: Can't open display: :0
Como root ejecutamos:
# xhost local:girish
X11 forwarding request failed on channel 0
Si nos da el error:
X11 forwarding request failed on channel 0
Comprobad que en el sshd_config del servidor tiene:
X11Forwarding yes X11UseLocalhost no