X11, como supongo la mayoría de Uds. sabrá, es el servidor gráfico que usan casi todas las distribuciones Linux. Este servidor permite, entre otras cosas, forwarding a través de SSH. Esto significa que es posible ejecutar apliaciones gráficas de una máquina remota exportando el display a nuestro escritorio. Es decir, la aplicación se ejecuta en el servidor remoto, pero la interfaz gráfica la visualizamos en nuestro escritorio local.
Pasos a seguir
1.- En el servidor, editar el archivo /etc/ssh/ssh_config y modificar la opción X11Forwarding para que quede así:
X11Forwarding yes
Luego de este cambio, posiblemente sea necesario reiniciar el demonio ssh. La forma de hacer esto varía de acuerdo a cada distribución Linux. Lo más sencillo es reiniciar la máquina.
2.- En el escritorio local, loguearse al servidor a través de SSH utilizando el parámetro -X:
ssh -X user@hostname
Donde user es el nombre de usuario utilizado para loguearse en el servidor y hostname es el IP o el alias del servidor.
3.- Para ejecutar una aplicación, simplemente hay que hacerlo desde el terminal. Por ejemplo:
firefox
Trusted X11 forwarding
Al habilitar Trusted X11 forwarding es posible acelerar un poco la velocidad de conexión, ya que se evitan algunos pasos vinculados a la seguridad de la misma.
En caso de que la velocidad sea más importante que la seguridad, todo lo que hay que hacer es lo siguiente:
1.- En el servidor, editar el archivo /etc/ssh/ssh_config y modificar la opción ForwardX11Trusted para que quede así:
ForwardX11Trusted yes
2.- En el escritorio local, loguearse al servidor a través de SSH utilizando el parámetro -Y:
ssh -Y user@hostname
Compressed X11 forwarding
En aquellos escenarios en los que la conexión entre el servidor y el cliente no sea la mejor, es posible comprimir los datos enviados por el servidor.
Para ello, a la hora de loguearse al servidor vía SSH hay que agregar el parámetro -C:
ssh -X -C user@hostname
21 comentarios, deja el tuyo
Dificil, mucho comando.
Mejor no me complico la vida y ejecuto Teamviewer
No sé, pero yo me complico más con el TeamViewer y su bendita clave.
me parece que son 2 cosas distintas, que alguien me corrija, pero este metodo que plantea aca, no es para que levante el entorno entero como si lo hace teamviewer, sino para por ejemplo poner como dice ahi «firefox» y que en tu maquina se abra firefox como siempre pero en verdad lo esta ejecutando desde la maquina remota..
Efectivamente, como has indicado es para ejecutar firefox (del servidor) en tu máquina. Es justo lo que me están enseñando ahora.
Así es, campeón!
Como diría un amigo, no hay que confundir los tantos: «una cosa es una cosa y otra cosa es otra cosa». Jaja…
Nah, en serio, tete tiene razón no este método no es comparable con teamviewer.
Abrazo! Pablo.
muy bueno, útil sobre todo y la verdad lo uso mucho ultimamente 🙂
la pregunta es: ssh_config o sshd_config? (man sshd_config porque no todas las distros lo traen por defecto, aunque lo ideal es declarar como usuario en $HOME/.ssh/config )
tambien se puede mirar la opcion X11UseLocalhost
o la clásica con DISPLAY=ip:X.x y xhost,
y ante cualquier problema darle al verbose (-v)
Así es… buen aporte!
Pues me parece muy interesante! Muchas gracias! Tendré que probarlo en mi servidor de ovh! 🙂
Adelante! Abrazo! Pablo.
Muy buen artículo. Una cuestión, uso mucho esta opción para conectar a una Raspberry Pi con Raspbian y Lxde, desde un Ubuntu con Unity. Muy a menudo ocurre que los iconos de las aplicaciones se ven corruptos ¿A qué podría deberse?
Otra cosa, yo suelo añadir la opción de ejecutar en segundo plano las aplicaciones gráficas: firefox &
Buen aporte el de correr las apps en segundo plano, no lo había pensado.
Respecto de los íconos… eso te pasa usando compressed X11 forwarding??
Abrazo! Pablo.
No, lo de compressed me lo has descubierto tú. Cuando tenga un hueco te mando una captura. Como info adicional uso faenza en Ubuntu, el cliente, y los iconos por defecto de Lxde en el servidor.
La respuesta la tienes ahí. El servicio que te traes no implica que te traigas también el entorno de escritorio. Solo te estás trayendo el servicio, y con la orden indicas que es un servicio gráfico. Las X que se ejecutan son las del cliente, en tu caso las de Ubuntu con Unity, y tiene que interpretar el tipo de iconos, dando equivalencia de Lxde a Unity, de los que tiene por defecto a los faenza (casualidad que me explicaron esto la semana pasada 😛 )
muy buen artículo!, yo hasta ahora hacia algo similar a hectorq, tengo dos serv. sin monitor, cuando necesito firefox para descargar algo (wget y transmission a veces no son suficiente), usaba ssh, startx y entraba por vnc/remmina. Bastante engorroso mi metodo, mucho mas facil hacer x11-forwarding
PS: en debian cambian un poco los archivos de config, parece que ForwardX11 cumple la misma funcion, saludos!
ahora que ando boludeando con un server me viene taaaaaaaaaaaan bien esto, y mass en este preciso momento xD, necesito usar multisystem pero el SO de mi notebook es Chakra Linux, y me tengo que fumar medio gnome compilandolo yo mismo para poder ejecutarlo, asique lo voy a instalar en el server con Debian, y forwarding xD jajajaj
Que bueno, campeón!
Me alegro! Abrazo!
Pablo.
Muchas gracias por la info!
Valor agregado:
Tengo Ubuntu Server 14.04.1 LTS
Tuve problemas con: ./Xauthority
Y para hacerlo funcionar necesite hacer estos cambios en: /etc/ssh/sshd_config
….
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
….
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
y reiniciar el servicio ssh: # sudo service ssh restart
Espero que le haya servido a alguien.
Bien! Gracias x el aporte!
Saludos! Pablo.
Muy bien explicado! Hay una cosa que no entiendo, si la aplicación se ejecuta en el host remoto ¿quiere decir que los gráficos también los procesa el host? Es decir,¿será la tarjeta gráfica del host quien procese los datos y simplemente le envía la información al cliente para que la visualice? Se me ocurre que así podría ejecutar desde mi pequeña notebook aplicaciones de modelado 3D que requieran mucho más potencia.
dan ganas de cagar
yo solo digo que quiero un abrigo