La machine cliente: machine qui va demander l'interface graphique
La machine serveur: machine qui va exporter l'interface graphique
L'export display consiste à se logguer à distance en mode graphique, comme on le fait avec un client et un serveur SSH en mode texte. On peut alors exécuter des applications graphiques sur le serveur distant : la fenêtre graphique de l'application et son contenu seront envoyés par le réseau vers la machine cliente ; les données du clavier et de la souris de la machine cliente sont envoyées vers le serveur.
L'export display nécessite une bonne connexion réseau entre le client et le serveur puisque le serveur envoie des images de l'écran au client…
Il y a trois possibilités de connexion, sachant que seule la première est entièrement cryptée.
SSH possède une fonction d'export display. Il faut que le serveur SSH distant ait autorisé la fonction d'export display, comme expliqué au chapitre L'accès à distance par SSH.
Pour l'utiliser, tapez dans un xterm :
% ssh -X login@serveur.exemple.org
puis lancez l'application graphique de votre choix…
Le serveur graphique possède une fonction d'export display, mais qui n'est pas cryptée comme avec SSH.
Il faut d'abord autoriser les connexions en provenance du serveur X, puis demander au serveur X distant de renvoyer le display vers le serveur X de la machine cliente :
% xhost + serveur.exemple.org % ssh login@serveur.exemple.org % export DISPLAY=client.exemple.org:0.0
Pour que cela marche, il faut que le serveur X de la machine cliente ( la machine qui va demander le X ) ne soit pas lancé avec l'option -nolisten tcp, ce qui est le cas par défaut !
Si vous utilisez la commande startx : enlevez cette option du fichier /etc/X11/xinit/xserverrc :
nano /etc/X11/xinit/xserverrc #!/bin/sh #exec /usr/bin/X -nolisten tcp "$@" exec /usr/bin/X11/X -dpi 100
et redémarrez le serveur X.
/etc/init.d/lightdm restart (en cas d'utilisation de lightdm) /etc/init.d/gdm restart (en cas d'utilisation de gdm)
Si vous utilisez GDM : enlevez cette option du paramètre command= de la section server-Standard du fichier /etc/gdm/gdm.conf :
[server-Standard] name=Standard server command=/usr/bin/X11/X -deferglyphs 16
et redémarrez GDM.
Le protocole XDMCP permet de se logguer au serveur graphique d'une machine distante, et de faire exactement comme si on était loggué sous X en local sur la machine.
Avertissement
Ce protocole fait tout transiter en clair sur le réseau, y compris les mots de passe !
Pour cela, installez GDM sur le serveur, comme expliqué au chapitre Se logguer en graphique.
Toujours sur le serveur, éditez le fichier /etc/gdm/gdm.conf et modifiez la section xdmcp :
[xdmcp] Enable=true
Redémarrez GDM :
# /etc/init.d/gdm restart Stopping GNOME Display Manager: gdm. Starting GNOME Display Manager: gdm.
Sur le client, vous pouvez alors vous logguer au serveur graphique distant. En console, tapez :
% X -query serveur.exemple.org
et vous devriez voir la fenêtre GDM du serveur :
Si vous avez déjà un serveur graphique de lançé sur le client et que vous ne pouvez pas le fermer, vous pouvez lancer un deuxième serveur graphique depuis une console :
% X :1 -query serveur.exemple.org
Le deuxième serveur X est alors présent sur la console n°13 ; pour y accéder depuis une autre console, vous pouvez vous mettre sur la console n°1 et faire Alt-Flèche Gauche.
X :1 -query 192.168.1.2 /usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
nano /etc/X11/Xwrapper.config allowed_users = anybody