GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar el reenvío X11 usando SSH en Linux

Hoy vamos a aprender una característica menos conocida, interesante y útil de Linux. Estoy seguro de que la mayoría de ustedes conocen SSH. Podemos acceder a sistemas Linux remotos de forma segura a través de SSH. Pero, ¿sabía que es posible reenviar X a través de SSH para ejecutar aplicaciones gráficas de forma remota? ¡Sí! Este mecanismo se conoce como reenvío X11. . En esta guía, configuraremos el reenvío X11 usando SSH en Linux.

¿Qué es el reenvío X11?

El reenvío X11 es un método que permite a un usuario iniciar una aplicación gráfica instalada en un sistema Linux remoto y reenviar las ventanas (pantalla) de esa aplicación al sistema local. El sistema remoto no necesita tener un servidor X o un entorno de escritorio gráfico. Por lo tanto, configurar el reenvío X11 mediante SSH permite a los usuarios ejecutar aplicaciones gráficas de forma segura a través de una sesión SSH.

Para poner esto en términos sencillos,

  • Nos conectamos a un sistema remoto a través de SSH,
  • Y luego lanzamos una aplicación GUI (que está instalada en el sistema remoto) desde esa sesión SSH,
  • Ahora, la aplicación GUI se ejecuta en el sistema remoto, pero la ventana de la aplicación aparece en nuestro sistema local. Entonces podemos usar este programa GUI remoto en su sistema local de la misma manera que usamos un programa instalado localmente.

¿Claro? Ahora avancemos y veamos cómo ejecutar aplicaciones GUI remotas a través de una sesión SSH.

Configurar el reenvío X11 usando SSH en Linux

A los efectos de esta guía, utilizaré los siguientes dos sistemas:

  • Servidor remoto:servidor mínimo CentOS 8 (sin GUI).
  • Sistema local:Ubuntu 20.04 LTS con Gnome DE.

Configurar el reenvío X11 es trivial.

Asegúrate de haber instalado "xauth" en su sistema de seridor remoto. Si no está instalado, ejecute el siguiente comando como usuario root o sudo:

# dnf install xorg-x11-xauth

Ve a tu sistema remoto (en mi caso es CentOS 8) y edita "/etc/ssh/ssh_config" archivo usando su editor favorito:

# nano /etc/ssh/ssh_config

Agregue/modifique la siguiente línea:

[...]
X11Forwarding yes

Configurar el reenvío X11 mediante SSH en Linux

Presiona Ctrl+O para guardar y Ctrl+X para cerrar el archivo. Reinicie el servicio sshd para efectuar los cambios:

# systemctl restart sshd

¡Hecho! Hemos configurado el reenvío X11.

Ahora vaya a su sistema cliente (en mi caso, es Ubuntu 20.04) y acceda al servidor remoto a través de SSH usando el comando:

$ ssh -X [email protected]

Toma, -X La opción se utiliza para habilitar el reenvío X11 a través de SSH. Reemplace "[email protected]" con el nombre de usuario y la dirección IP de su servidor remoto.

Verá el siguiente mensaje de advertencia la primera vez.

/usr/bin/xauth: file /root/.Xauthority does not exist

Sin embargo, la .Xauthority El archivo debe generarse automáticamente durante el primer inicio de sesión, por lo que los inicios de sesión posteriores deberían estar bien.

A continuación, inicie cualquier aplicación GUI desde esta sesión SSH. Ya instalé el editor de texto gráfico Gedit en mi servidor CentOS 8, así que voy a iniciarlo usando el comando:

# gedit

La pantalla de la ventana GUI de gedit ahora aparecerá en su sistema local.

Ejecute aplicaciones gráficas remotas a través de una sesión SSH en Linux

Puede interactuar con la aplicación Gedit instalada en el servidor remoto usando la pantalla, el mouse y el teclado de su sistema local.

Aunque mi servidor CentOS 8 no tiene un escritorio GUI, puedo abrir el editor gráfico Gedit y usarlo desde mi sistema Ubuntu local. Aquí está la demostración visual:

Configurar reenvío X11 en Putty

Si usas Putty cliente para acceder a sistemas remotos, ingrese la IP o el nombre de host de su sistema remoto en la pestaña Sesión:

Conéctese al sistema remoto usando Putty

A continuación, vaya a Conexión -> SSH -> X11 y habilite la opción de reenvío X11. Haga clic en Abrir para establecer una nueva sesión de Putty:

Configurar el reenvío X11 en Putty

Introduzca el nombre de usuario y la contraseña del servidor remoto. Una vez que se haya conectado al sistema remoto a través de Putty, inicie cualquier aplicación X instalada en el servidor remoto.

Ejecute aplicaciones gráficas sobre la sesión de Putty

¡Comience a interactuar con la aplicación GUI remota desde su sistema local!


Linux
  1. Cómo configurar conexiones SSH personalizadas para simplificar el acceso remoto

  2. Cómo configurar claves SSH usando cPanel

  3. Cómo configurar la autenticación basada en clave SSH en Linux

  4. Cómo habilitar el reenvío de IP en Linux

  5. ¿Cómo sé si una máquina remota está usando Windows o Linux?

Cómo configurar el reenvío de puertos dinámicos SSH en Linux

Cómo realizar una copia de seguridad remota de Linux mediante SSH

Cómo montar un sistema de archivos Linux remoto usando SSHFS

Uso del reenvío de puertos SSH como herramienta de seguridad en Linux

Cómo crear una VM remota usando el controlador SSH genérico de docker-machine

Cómo instalar, configurar y habilitar el servicio SSH en Linux