Ejecutar aplicaciones X remotas a través de SSH en GNU/Linux

Introducción.

Otra característica muy práctica que es permite el protocolo SSH (OpenSSL) es la ejecución remota de aplicaciones X.  Esto es, la facilidad de ejecutar aplicaciones gráficas (X) en servidores remotos y recibir su contexto gráfico (ventana) en el escritorio remoto de la misma manera como se ejecutan las aplicaciones locales.  Sobra decir que la comunicación cliente/servidor a través de la cual viajan las peticiones y respuestas de la aplicación se realiza a través de una conexión encriptada así que es posible hacerlo sobre un medio inseguro como Internet.

Hace un par de años había explicado como hacerlo bajo Windows, esta vez voy a documentar como hacerlo bajo GNU/Linux Ubuntu 10.04 (aunque en términos generales aplica para cualquier distribución) donde es aún mas natural.

Requerimientos.

  • Tanto el cliente como el servidor deberán estar ejecutando servidores de ventanas X.
  • El servidor cuenta con el servicio de SSH.
  • El cliente cuenta con un cliente para SSH.
  • El usuario en el cliente tiene una cuenta de usuario con acceso de SSH en el servidor.

Configuración.

En el servidor.

Las siguientes opciones son necesarias en la configuración del servicio SSH en el servidor.

$ sudo vi /etc/ssh/sshd_config

AllowAgentForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Después de realizadas las modificaciones en la configuración del servicio es necesario reiniciarlo para que estas sean tenidas en cuenta.

$ sudo /etc/init.d/sshd restart

En el cliente.

No es necesaria ninguna modificación.

Implementación.

Desde el cliente inicie una sesión SSH con el servidor remoto.

$ ssh -X jimezam@mi.servidor.com

jimezam@mi.servidor.com’s password: ******

Nótese el uso del parámetro -X (en mayúscula!) el cual permite la transmisión del protocolo X a través de la conexión segura.

-X      Enables X11 forwarding.  This can also be specified on a per-host
basis in a configuration file.

X11 forwarding should be enabled with caution .  Users with the
ability to bypass file permissions on the remote host (for the
user’s X authorization database) can access the local X11 display
through the forwarded connection.  An attacker may then be able
to perform activities such as keystroke monitoring.

For this reason, X11 forwarding is subjected to X11 SECURITY
extension restrictions by default.  Please refer to the ssh -Y
option and the ForwardX11Trusted directive in ssh_config(5) for
more information.

En el shell de la sesión simplemente invoque las aplicaciones (remotas) que desee ejecutar, estas aparecerán en el escritorio local con su mismo look-and-feel.

Ejecución de aplicaciones remotas a través de SSH

En el ejemplo anterior, el servidor remoto (parte izquierda) sirve remotamente las aplicaciones ejecutadas que se muestran como ventanas locales (parte derecha).  En este caso se ejecutaron xclock, xeyes y xterm.

El servidor se utiliza XFCE como manejador de ventanas (azules) mientras que el cliente utiliza GNOME (negras), nótese como las aplicaciones remotas, enunciadas en el párrafo anterior, aparecen en ventanas negras adaptándose al manejador de ventanas local.

Enlaces.

3 thoughts on “Ejecutar aplicaciones X remotas a través de SSH en GNU/Linux”

Leave a Reply

Your email address will not be published. Required fields are marked *