Cómo mostrar ventanas del modo gráfico de GNU Linux (X Window) en un escritorio Microsoft Windows. Os explicamos cómo utilizar el servidor X Window para Microsoft Windows Xming. Este servidor se conecta a GNU Linux mediante el protocolo SSH, por lo que utilizaremos el cliente SSH PuTTY como puente entre Xming y GNU Linux.

Definición Xming

Xming es una implementación del sistema X Window para el sistema operativo Microsoft Windows, Xming puede ejecutarse en Windows XP, 2003 y Vista.

Xming X Server se basa en X.Org Server, compilado en GNU Linux con el compilador MinGW y Pthreads-Win32.

Xming está también disponible con soporte para Mesa 3D. Xming soporta multitud de lenguajes.

A diferencia de Cygwin, Xming no requiere bibliotecas en tiempo de ejecución de Cygwin .

Xming puede utilizarse con aplicaciones Secure Shell (SSH) para realizar conexiones seguras a sesiones X11 en otros equipos de la red. Soporta PuTTY como cliente de SSH. 

Descarga e instalación de Xming

En primer lugar realizaremos la descarga gratuita de Xming desde la URL:

https://sourceforge.net/projects/xming/files/Xming/6.9.0.31/Xming-6-9-0-31-setup.exe/download?use_mirror=vorboss&use_mirror=fastbull

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Guardaremos el fichero a descargar Xming-6-9-0-31-setup.exe (de 2,10MB) en la ubicación que deseemos:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Iniciaremos la instalación de Xming 6.9.0.31 en Microsoft Windows XP ejecutando el fichero descargado:

Xming servidor X para Windows mediante SSH y GNU Linux - Instalación de Xming

Pulsaremos «Ejecutar» en la ventana de advertencia de seguridad de Windows indicando si deseamos ejecutar un fichero descargado de Internet:

Xming servidor X para Windows mediante SSH y GNU Linux - Instalación de Xming

Se iniciará el asistente de instalación de Xming, pulsaremos «Next» para iniciar la instalación:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Indicaremos la ubicación donde se instalará Xming, por defecto:

C:/Archivos de programa/Xming

Tras indicar la ruta de instalación pulsaremos «Next» para continuar:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Si la carpeta de destino no existe nos mostrará un aviso indicando si queremos que el asistente la cree, pulsaremos «Sí»:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

A continuación indicaremos los componentes que queremos instalar, por defecto «Full installation» que instalará:

  • Non US Keyboard suppor
  • XLaunch wizard – frontend for Xming
  • Run utility – start programs with hidden console window
  • Normal PuTTY Link SSH client

Pulsaremos «Next» para continuar:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

El asistente nos permitirá cambiar el nombre de la carpeta que creará en el menú Inicio de Windows, pulsaremos «Next»:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

A continuación podremos modificar otros parámetros de instalación, también podremos asociar XLaunch de Xming con los ficheros con extensión .xlaunch, pulsaremos «Next» para continuar:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Antes de la instalación definitiva de Xming, el asistente nos mostrará una ventana con el resumen de las opciones seleccionadas, si son correctas pulsaremos «Next» para instalar:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Un ejemplo del contenido de esta ventana:

Destination location:
C:/Archivos de programa/Xming

Setup type:
Full installation

Selected components:
Xming binary
Non US Keyboard support
XLaunch wizard – frontend for Xming
Run utility – start programs with hidden console window
Normal PuTTY Link SSH client

Start Menu folder:
Xming

Additional tasks:
Other tasks:
Associate XLaunch.exe with the .xlaunch file extension

Tras la instalación, el asistente nos permitirá ejecutar Xming, para ello marcaremos la opción «Launch Xming» y pulsaremos «Finish»:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

El servidor de X Window Xming se iniciará y mostrará un icono en el área de notificación:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga Xming

Con esto ya tendremos preparado el sistema X Window para la conexión con PuTTY y el sistema X11 de GNU Linux.

Descarga e instalación de PuTTY

En primer lugar realizaremos la descarga gratuita de PuTTY desde la URL:

http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga e instalación de PuTTY

Guardaremos el fichero «putty.exe» (de 444KB) en el equipo, en la carpeta que queramos:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga e instalación de PuTTY

Tras la descarga, podremos ejecutar el fichero descargado, en realidad PuTTY no necesita instalación es suficiente con ejecutar el fichero «putty.exe»:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga e instalación de PuTTY

Desmarcaremos la opción «Preguntar siempre antes de abrir este archivo» y pulsaremos «Ejecutar»:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga e instalación de PuTTY

Con esto ya tendremos disponible el cliente SSH PuTTY:

Xming servidor X para Windows mediante SSH y GNU Linux - Descarga e instalación de PuTTY

Preparación de GNU Linux para servidor de SSH

Si ya disponemos del servidor SSH instalado en GNU Linux no será necesario este paso, si no lo hemos instalado seguiremos las siguientes indicaciones para hacerlo.

En primer lugar abriremos el puerto 22 en el firewall de Linux (Netfilter). Linux incorpora en el propio kernel (núcleo) un firewall, llamado «Netfilter», utilizaremos el comando iptables para configurarlo a nuestra medida. Para permitir el acceso desde fuera de nuestro equipo mediante SSH, deberemos abrir el puerto 22 en el cortafuegos, si queremos ver si ya está abierto podremos ejecutar el comando:

sudo iptables -L

Que devolverá algo así (si ya está abierto):

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp — anywhere anywhere tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Si no está abierto, ejecutaremos el siguiente comando:

sudo iptables -A INPUT -p tcp -i eth0 –dport 22 -j ACCEPT

Si no tenemos instalado Open SSH lo podremos hacer con el comando: en caso de que ssh no estuviera instalado habría que instalar los paquetes openssh-server y openssh-client, con los comandos:

sudo apt-get install openssh-server

sudo apt-get install openssh-client

(para distribuciones GNU Linux Debian)

Si intentásemos acceder mediante SSH a nuestro servidor, por ejemplo con PuTTY, nos mostraría este mensaje de error:

Acceso SSH mediante PuTTY - Instalación de Linux Ubuntu Server 8.04.1

Con el texto: Access denied. Indicando que no tenemos acceso SSH a nuestro servidor, ni siquiera con el superusuario root.

Para dar acceso a los usuarios que deseemos mediante SSH, editaremos el fichero ssh_config, ubicado en /etc/ssh/. Para ello editaremos el fichero con vi ó con nano, ejecutaremos el comando:

sudo nano /etc/ssh/ssh_config

Añadiremos la siguiente línea para permitir el acceso mediante SSH al usuario «alonso»:

AllowUsers alonso

Si queremos permitir el acceso mediante SSH al superusuario root añadiremos la siguiente línea a este fichero:

PermitRootLogin yes

Aunque esto no es muy recomendable por cuestiones de seguridad.

Para indicar con qué interfaz de red se establecerá la conexión (en el caso de que tengamos varias interfaces de red con varias IPs en nuestro servidor de GNU Linux) añadiremos la línea:

ListenAddress 192.168.1.254

(donde 192.168.1.254 será la IP del equipo con GNU Linux)

Configuración fichero ssh_config - Instalación de Linux Ubuntu Server 8.04.1

Tras guardar los cambios, nos quedará configurar los ficheros hosts.deny y hosts.allow, ubicados en /etc/. Editaremos el fichero /etc/hosts.deny para indicar que deniegue todas las conexiones desde cualquier IP, añadiendo la línea:

ALL: ALL

Fichero hosts.deny - Instalación de GNU Linux Ubuntu Server 8.04.1

Ahora modificaremos el fichero /etc/hosts.allow para indicarle a Linux Ubuntu que IP o rango de IPs tendrán acceso mediante SSH, añadiendo la línea:

sshd: 192.168.1.*

(le estamos diciendo que todos los equipos de la red 192.168.1.xxx tendrán acceso, para indicar una sola IP: sshd: 192.168.1.200)

FIchero hosts.allow - Instalación de Linux Ubuntu Server 8.04.1

 Conexión Windows con GNU Linux mediante Xming y PuTTY

Tras instalar Xming, PuTTY y preparar GNU Linux para recibir conexiones SSH sólo nos quedará tener iniciado Xming y abrir PuTTY con la siguiente configuración:

  • En «Host Name (or IP address)» introduciremos la IP del equipo con GNU Linux, por ejemplo 192.168.1.254.
  • En «Port» introduciremos el puerto utilizado por SSH, por defecto (el habitual) 22.
  • En «Saved Sessions» introduciremos un nombre para poder guardar la conexión y utilizarla en cualquier otro momento, por ejemplo «pclinux».
Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

En la parte izquierda, en el árbol de opciones de PuTTY seleccionaremos la rama «Connection», dentro de esta «SSH» y la opción «X11», en X display location introduciremos la IP del equipo con Microsoft Windows XP, que será donde Xming muestre las ventanas de GNU Linux, por ejemplo 192.168.1.2, en esta ventana marcaremos también «Enable X11 forwarding»:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Volveremos a la rama «Session» de la izquierda, pulsaremos «Save» para guardar la conexión en PuTTY. Para probar la conexión la seleccionaremos y pulsaremos «Open»:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Si tenemos algún cortafuegos en Microsoft Windows XP deberemos abrir las conexiones para el puerto 22:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Si todo es correcto y tenemos bien configurado el servidor SSH en GNU Linux PuTTY nos mostrará una ventana de terminal pidiéndonos usuario y contraseña de GNU Linux, por ejemplo «alonso» (usuario que debe tener los permisos necesarios y existir en GNU Linux):

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Con esto ya podremos ejecutar cualquier comando en GNU Linux desde nuestro Windows XP:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

A continuación realizaremos un test del sistema X Windows de Xming ejecutando el comando GNU Linux:

xclock

Que mostrará, si todo es correcto, la aplicación XClock de GNU Linux en el escritorio de Microsoft Windows XP:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

A partir de ahora podremos ejecutar cualquier aplicación en modo gráfico en Microsoft Windows XP de GNU Linux, por ejemplo, introduciendo el siguiente comando en la ventana de terminal de PuTTY:

firefox

Abriremos Mozilla Firefox de GNU Linux en el escritorio de Microsoft Windows:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Lógicamente, todo lo que hagamos en la ventana en modo gráfico de GNU Linux se hará como si estuviésemos en el equipo con GNU Linux. Por ejemplo, si realizamos una descarga en el Firefox abierto anteriormente, la descarga la estaremos realizando en el equipo con GNU Linux al que estamos conectados:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

El resultado en la ventana de terminal de PuTTY tras ejecutar una aplicación gráfica de GNU Linux en el escritorio de Windows:

alonso@pcubuntu:~$ firefox
Xlib: extension «Generic Event Extension» missing on display «localhost:10.0».
Xlib: extension «Generic Event Extension» missing on display «localhost:10.0».
Xlib: extension «Generic Event Extension» missing on display «localhost:10.0».
Xlib: extension «Generic Event Extension» missing on display «localhost:10.0».

Podremos administrar el cortafuegos de GNU Linux en modo gráfico desde Windows XP con el comando:

sudo firestarter

(necesita privilegios de administrador, de ahí «sudo»)

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

O el monitor de sistema de GNU Linux:

sudo gnome-system-monitor

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

O, por qué no, instalar cualquier paquete en GNU Linux mediante Synaptic con el comando:

sudo synaptic

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Sin duda, con Xming y PuTTY tendremos una herramienta muy potente para administradores de sistemas, que con este método podrán ejecutar ventanas del modo gráfico de GNU Linux en cualquier sistema operativo Microsoft Windows. Por ejemplo, podremos ejecutar MySQL Administrator de GNU Linux desde Microsoft Windows:

myql-admin

Xming nos mostrará MySQL Administrator de GNU Linux (si lo tenemos instalado):

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

En «Server Information» podremos ver que efectivamente este MySQL Administrator es el de GNU Linux, en la variable «Operating System», con el valor «Linux 2.6.28-11-generic:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP

Por supuesto, desde Microsoft Windows, podremos administrar nuestro MySQL Server de GNU Linux como si estuviésemos sentados delante de este equipo, podremos crear un catálogo «proyectoa», añadir tablas, etc:

Xming servidor X para Windows mediante SSH y GNU Linux - Conexión y ejecución X Windows X11 en XP