====== 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 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