Forwarding X SSH
Un article de Diablotins.org.
|
Sommaire |
Le Forwarding X11 sous SSH
Introduction
Une des fontionnalitées bien de OpenSSH et souvent peu connue, c'est la capacité d'encapsuler du traffic X. je m'explique, en gros, et ça aussi c peu connu un serveur X est un serveur ...
Bon okai j'arrete, ce que je veut dire c'est que le protocole X11 est conçu pour permettre l'accès à des API graphiques depuis d'autres serveurs X en réseaux .. En gros afficher une application qui tourne sur une machine sur une autre machine.
Par contre le problème du protocole X, c'est qu'il écrit en clair sur le réseau ... et la ... c'est le drame ! 'Sniff !' ;)
D'ou OpenSSH, qui permet de faire passer tout les petits bits X11 dans un gros tuyau SSHv2, il est bien ce OpenSSH ;).
Bon je vous prévient il va falloir bien suivre parce que en X le client c'est le serveur enfin je me comprend. Je veux dire que pour lancer l'application d'une machine distante sur votre écran vous devez avoir un serveur X et oui ...
Par contre coté OpenSSH le client SSH est sur le serveur X et vice et versa... et .. prenez de l'aspirine avant de continuer...
Mise en oeuvre coté serveur SSH d'ou machine cliente X
D'abord vérifié que les Xlibs et xfree86-clients sont bien installé avec un jolie xterm. Ensuite passons à la configuration de OpenSSH, le démon puisqu'on est coté client X, c'est logique.
$ su - # vi /etc/ssh/sshd_config -- [...] X11Forwarding yes [...] # killall -HUP sshd
la je sent d'ici les gens qui vont se couper l'herbe sous le pied ... si vous ĂŞtes en connexion ssh, eviter de couper la branche sur laquelle vous ĂŞtes assis. Attention Ă la chute ! ;)
Sur la branche 5.X de FreeBSD, l'alternative simple :
# /etc/rc.d/sshd restart
Vérifiez que votre petite tuyauterie crypto-connectique n'a pas succombé a une quelconque défaillance digito-tactile (faute de frappe sur fichier de config pour ceux qu'i n'aurait pas compris ;) ).
# ps afx|grep sshd 446 ?? Ss 0:46,92 /usr/sbin/sshd
c'est bon il est pas mort ?
Bon ....
Remarque : des fois le SIGHUP ne suffit pas (Ă croire que OpenSSH fait la sourde oreille).
Dans ce cas la :
# killall -KILL sshd # sshd
ou
# /etc/rc.d/sshd stop # /etc/rc.d/sshd start
on vérifie:
# ps afx |grep sshd 480 ?? Ss 0:46,92 /usr/sbin/sshd
LĂ , je vous garantie qu'il a bien relut son fichier de configuration. Par contre, encore fois attention Ă la chute .. ;)
Mise en oeuvre coté client SSH d'ou serveur X
Donc la on est sur le client, pour ceux qui ont des doutes.
Ici, on va jouer avec une petite variable d'environment, DISPLAY.
$ export DISPLAY=[Ip du serveur SSH/client X]:0.0
le 0.0 à la fin c'est pas une paire de lunette stylisé ;).
ça veut dire Display 0 et écran 0.
J'en vois qui viennent de découvrir le support natif du multi-screen sous X.
Le display 0, je pense pas vous apprendre grand chose, c'est le display par défaut de votre serveur X ou votre client c comme vous voulez après tout ..
Donc grosso-modo, on vient de dire a X le serveur.. affiche moi les applications du serveur SSH /client X ici sur l'écran, là , devant moi !!
Petite précaution d'usage à destination du CLIENT SSH :
$ su - # vi /etc/ssh/ssh_config -- [...] ForwardX11 yes'. [...]
Execution forwardé depuis un serveur Xfree86
Bon on tient le bon bout de la socket lĂ .. sur le client SSH :
$ shh user@server_SSH $ xterm
Et la c'est le mimi c'est la rara, c'est la miracle !
Les mauvaise langues vont me dire, tout ça pour ça ???
- )
Les autres Serveurs X
Bon, l'intérêt du procédé c'est surtout que vous pouvez installer un serveur X11 pour WIN32 (Xp,2000) et consort. Et donc utiliser vos jolies applications X depuis Windows. Même carrement exporter votre windows manager sous Windows.
Il existe de nombreuses implémentations de X pour Windows :
- Payantes
- XWIN32 de StarDivision
- Xmanager de Netsarang (très bien).
- gratuite
- CYGWIN/Xfree86.
et voila.
