Xming

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Serveur X pour Windows (export d'affichage graphique via SSH)
Usage typique Afficher depuis un client Windows (PuTTY) les fenêtres graphiques d'applications lancées sur un serveur Unix/Linux distant
Alternatives modernes VcXsrv, X410, MobaXterm (serveur X intégré)
Voir aussi Swish

Xming est un serveur X pour Windows : il permet d'afficher localement, sur un poste Windows, l'interface graphique d'applications lancées sur un serveur Unix/Linux distant, via un tunnel SSH (typiquement avec PuTTY). Après installation, on peut vérifier rapidement son fonctionnement avec une application graphique simple :

# xclock

Configuration côté client SSH

L'export graphique repose sur la variable d'environnement DISPLAY, qui doit pointer vers le serveur X (ici, le tunnel SSH ouvert par le client) :

# echo $DISPLAY
localhost:10.0

Sur les versions récentes du serveur SSH (OpenSSH), il suffit d'activer ForwardX11Trusted yes dans /etc/ssh/sshd_config et de redémarrer le service pour que le transfert X11 fonctionne correctement.

Dépannage : changement d'utilisateur (su)

Un problème classique survient lors d'un changement d'utilisateur (su) après connexion : le nouvel utilisateur n'hérite pas de l'autorisation X11 de la session initiale, ce qui produit une erreur du type :

$ su - oracle
$ xterm
Xlib: connection to "localhost:10.0" refused by server
Xlib: PuTTY X11 proxy: wrong authentication protocol attempted
xterm Xt error: Can't open display: localhost:10.0

La solution consiste à transférer manuellement le cookie d'autorisation X11 (« MIT-MAGIC-COOKIE ») vers le compte cible :

utilisateur $ xauth list
monposte/unix:10  MIT-MAGIC-COOKIE-1  bc334c66cfec3c5c3d5b0efc4ee9d3ad
utilisateur $ su - oracle
oracle $ xauth add monposte/unix:10 MIT-MAGIC-COOKIE-1 bc334c66cfec3c5c3d5b0efc4ee9d3ad

Une fois le cookie ajouté, les applications graphiques du nouveau compte peuvent s'ouvrir normalement :

oracle $ xterm

Sécurité

  • Par défaut, un raccourci Windows lançant Xming sans restriction d'hôtes ressemble à :
"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow -ac

L'option -ac désactive le contrôle d'accès X11 — à éviter en dehors d'un poste isolé/de confiance, puisqu'elle autorise n'importe quel hôte à se connecter au serveur X.

  • Il est possible de restreindre les hôtes autorisés via le fichier C:\Program Files (x86)\Xming\X0.hosts, plutôt que de désactiver purement et simplement le contrôle d'accès.

Script d'aide côté serveur

Un petit script shell permet de positionner automatiquement DISPLAY à partir de l'adresse IP source de la connexion SSH :

#!/bin/bash
IP_SOURCE=$(echo $SSH_CONNECTION | cut -d' ' -f 1)
export DISPLAY=$IP_SOURCE:0.0
echo "Export X11 configuré : testez avec xclock."

Activation automatique côté PuTTY

Dans PuTTY : Connection > SSH > X11, cocher Enable X11 forwarding. Xming doit être démarré avant l'ouverture de la session PuTTY pour que le transfert fonctionne.

Alternatives modernes

(à vérifier) — Xming reste utilisé en environnement d'entreprise legacy, mais plusieurs alternatives plus récentes existent : VcXsrv (fork open source actif), X410 (Microsoft Store), ou les clients tout-en-un comme MobaXterm qui embarquent leur propre serveur X.

Voir aussi

  • Swish — extension SFTP pour l'explorateur Windows, même famille d'usage (accès à un serveur distant depuis Windows)