Xming
| 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)