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