Logo OpenSSH

Ejecutar aplicaciones gráficas en cliente SSH

 
 

Introducción
Cuando nos conectamos con un cliente SSH a un equipo remoto, los comandos, programas y scripts que lancemos desde cliente SSH se ejecutarán en la máquina remota. Por lo tanto, utilizarán los recursos de la máquina remota (CPU, memoria, disco, etc). Esta arquitectura es muy útil, por ejemplo, para tener un servidor de aplicaciones más potente y varios clientes que ejecutan aplicaciones en dicho servidor.

En este artículo mostramos dos métodos para ejecutar aplicaciones gráficas en un equipo remoto y visualizarlas en el equipo local donde ejecutamos el cliente SSH. Estos métodos son Exportar el display del sistema de ventanas X y utilizar un túnel SSH para encapsular el protocolo X11.

  1. Definir la variable $DISPLAY:
    Esta primera opción consiste en definir la variable $DISPLAY apuntando a la máquina desde la que nos conectamos.
    Primero establecemos una conexión con el equipo remoto con el cliente SSH:

    usuario@pclocal:~$ ssh usuario_remoto@host_remoto

    Una vez conectados, ejecutamos el siguiente comando para definir la variable:

    usuario_remoto@pcremoto:~$ export DISPLAY=host_local:0.0

    Este mecanismo no se recomienda por motivos de seguridad. El protocolo X11 no se encuentra cifrado y además, pueden surgir problemas con los cortafuegos intermedios que bloqueen ese tráfico al puerto 6000/TCP.

    Puedes saber más sobre este método leyendo el artículo Exportar el display del sistema de ventanas X publicado con anterioridad en ZeppelinuX.

  2.  

  3. Utilizar un túnel SSH para encapsular el protocolo X11:
    Una solución mejor es utilizar un túnel SSH para encapsular el protocolo protocolo X11, transmitiéndose así la información de forma segura y además, no suele dar problemas con los cortafuegos intermedios.

    Para poder ejecutar aplicaciones gráficas en el host remoto de forma segura, necesitamos dos cosas:

    1. En el archivo de configuración del servidor SSH del host remoto, /etc/ssh/sshd_config, la directriz X11Forwarding debe estar habilitada.
    2. Al conectarnos usaremos el parámetro -X, que exportará la configuración de la variable $DISPLAY y podremos ejecutar aplicaciones gráficas de forma remota:
      usuario@pclocal:~$ ssh -X usuario_remoto@host_remoto

 
Ahora, al ejecutar aplicaciones gráficas en el equipo remoto las visualizaremos en nuestro escritorio. Prueba a ejecutar xclock, verás como aparece en tu escritorio un reloj en modo gráfico.

usuario_remoto@pcremoto:~$ xclock

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
 
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.