Comme je l'ai expliqué précédemment, utiliser XDMCP pour afficher une interface graphique via Internet est fondamentalement un non-sens, car les données ne sont pas chiffrées lors de leur passage sur Internet. Une des manières de renforcer la sécurité du transfert est de recourir à SSH par appel de X11 dans un tunnel sécurisé ou par transfert de port. SSH (Secure Shell, « interpréteur de commandes sécurisé » a été développé en 1995 par Tatu Ylonen pour remplacer les telnet, ftp, scp, rcp, rlogin, rsh, etc, par nature non sécurisés. La première chose à savoir est que le transfert X11 avec SSH est différent de votre façon habituelle et non sécurisée de faire tourner un fenêtrage X.
Avant de commencer cette configuration, il vous faut des informations complémentaires. Premièrement, il faut que le paquetage SSH soit installé. Dans Linux, il s'agit des paquetages OpenSSH. Vérifiez dans votre distribution les paquetages à installer (certaines l'installent par défaut). Deuxièmement, il vous faut un client SSH Windows (client SSH Windows (des versions pour d'autres systèmes d'exploitation tels que MAC, sont aussi disponibles). Je recommande PuTTY. C'est un merveilleux client SSH libre. Vous pouvez le télécharger de ce lien. N'oubliez pas de télécharger la documentation et de la lire soigneusement. Un autre bon client SSH libre est Tera Term Pro + TTSSH, qui constitue une extension SSH à Tera Term. Celui-ci est un client SSH édité par SSH.com (gratuit pour des utilisations non commerciales). Je vais procéder de nouveau par étapes, de façon à vous permettre de suivre facilement.
Ouvrez le programme putty.exe en
double-cliquant dessus. Cela va lancer l'interface.
Premièrement, renseignez les informations de connexion dans le
champ “Host Name (or IP address)” avec le
nom de l'hôte distant ou son adresse IP et sélectionnez SSH (SSH
utilise le port 22). Dans la fenêtre “Category”, trouvez la branche “Connection”. Dans SSH, développez-la et vous
verrez la fenêtre “Tunnels”. Cliquez sur
“Enable X11 forwarding” (autoriser le
transfert de port). Il configurera l'affichage graphique par
défaut à localhost:0
. À présent, retournez à
la fenêtre “Session” et sauvegardez cette
session sous le nom de votre choix. J'utilise normalement le nom
d'hôte pour me rappeler facilement où je désire me connecter.
Dans l'exemple d'Exceed, voici comment faire. (Pour les autres clients X, la configuration est analogue). Ouvrez Xconfig de votre répertoire Exceed. Dans votre écran Screen Definition (définition de l'écran), passez le “Window mode” à “Multiple” et sauvegardez-le. Appelez ensuite votre icône “Communication” et définissez le mode “Startup” à “Passive”.
C'est terminé. Afin d'effectuer les tests, nous allons d'abord utiliser PuTTY (ou un autre client SSH) pour se connecter sur le serveur. À la première connexion, il vous demandera si vous désirez conserver la clé de sécurité. (“Yes” (oui) est le choix par défaut). Une fois connecté, lancez Exceed. Il demeurera en tâche de fond. Vous pouvez à présent exécuter n'importe quelle application X ; l'application X devrait être transmise à travers SSH à votre écran local. Par exemple :
$ xclock &
Vous devriez voir Xclock tourner sur votre écran local.
Vous constatez à présent la différence : vous ne voyez pas toutes vos fenêtres graphiques. Vous exécutez simplement vos applications une par une et elles sont routées via SSH vers votre écran local. Ce qui fait qu'il vous faut connaître la commande de chaque application à lancer. Tous les contrôles s'effectuent à l'intérieur de la fenêtre du client SSH. Pour moi, la sécurité est plus importante que ce léger inconvénient !
Si vous utilisez X-Win32 et que vous désirez mettre en œuvre SSH et le transfert de port, vous pouvez avoir recours à cette référence pour le configurer.