¿Alguna vez has intentado conectarte a un servidor remoto a través de SSH y has recibido el mensaje de error «X11 forwarding request failed on channel 0»? Si es así, no te preocupes, no eres el único, este error puede ser bastante común cuando intentas ejecutar aplicaciones gráficas en un servidor remoto a través de SSH.
Pero no te preocupes, en este post te mostrare cómo solucionar este error y permitir que puedas ejecutar aplicaciones gráficas en tu servidor remoto sin problemas, para explicarlo de forma sencilla el error X11 forwarding request failed on channel 0 indica que hay un problema con el reenvío de X11 a través de SSH, existen varias razones por las que puede que estés enfrentando este error, aquí hay algunas soluciones que puedes intentar:
Verificar la configuración del servidor SSH
Verificar la configuración del cliente SSH, debes asegúrate de que la opción X11Forwarding esté habilitada en el archivo de configuración del servidor SSH (/etc/ssh/sshd_config
), donde debería haber una línea que diga:
X11Forwarding yes
Si no existe o está comentada, agrégala o des comenta y reinicias el servidor SSH:
sudo systemctl restart ssh
Verificar la configuración del cliente SSH
En el archivo de configuración del cliente SSH (~/.ssh/config
o /etc/ssh/ssh_config
), asegúrate de que la opción «ForwardX11» esté habilitada:
ForwardX11 yes
Si no existe o está comentada, agrégala o des comenta.
Instalar y configurar un servidor X en la máquina local
Asegúrate de que tengas un servidor X instalado y en ejecución en tu máquina local, si bien en sistemas Linux es probable que ya tengas un servidor X instalado, dependerá de la instalación, puedes instalar xorg o Wayland, mientras que en Windows, puedes usar Xming o VcXsrv y en macOS, XQuartz es una opción popular.
Verificar el valor de la variable DISPLAY en el servidor remoto
Una vez que te hayas conectado al servidor remoto por SSH, verifica el valor de la variable de entorno DISPLAY:
echo $DISPLAY
Deberías ver un valor como localhost:10.0
. Si no es así, intenta configurarlo manualmente:
export DISPLAY=localhost:10.0
Comprobar si xauth está instalado en el servidor remoto
El paquete xauth es necesario para el reenvío de X11. Verifica si está instalado en el servidor remoto:
En sistemas basados en Debian/Ubuntu:
sudo apt-get install xauth
En sistemas basados en RHEL/CentOS/Fedora:
sudo yum install xauth
Después de intentar estas soluciones, vuelve a conectarte por SSH con el parámetro -X y verifica si el problema persiste. Si aún tienes problemas, es posible que haya problemas específicos de tu configuración que requieran una investigación adicional.
Conclusión
En conclusión, el error X11 forwarding request failed on channel 0 puede ser un problema común al intentar ejecutar aplicaciones gráficas en un servidor remoto a través de SSH, como vimos este error ocurre debido a que la configuración de X11 forwarding no está habilitada correctamente en el servidor remoto o en el cliente local, sin embargo, siguiendo los pasos que te he descrito en este post, puedes solucionar este error y permitir que puedas ejecutar aplicaciones gráficas en tu servidor remoto sin problemas, recuerda que habilitar la configuración de X11 forwarding en tu servidor remoto puede ser muy útil si necesitas ejecutar aplicaciones gráficas o incluso para cosas tan simples como compartir el portapaples.
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas que sino fuera por estos nabos no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan mejor madura.