Re: Serveur X

Page principale

Répondre à ce message
Auteur: Yves Martin
Date:  
À: guilde
Sujet: Re: Serveur X
Selon Herve de Dianous <De.Dianous.Herve@???>:

> Olivier Guerrier wrote:
> >
> > L'export ssh (oui je viens de lire ma bal ;) ) est une bonne solution
> depuis un
> > site distant, mais en local je trouve un peu dommage de crypter le flux X11
> (ça
> > bouffe des ressources pour pas grand chose amha)
>
> Bon, je précise, ssh -X n'exporte pas de "flux X11" puisque c'est le
> serveur X et les librairies graphiques du client qui sont utilisés.
> Par exemple, si la machine client est en Kde et le soft graphique en
> Gtk, il te faudras installer les libs Gtk sur le client, et inversement.
> C'est le contraire de l'export display.


??? Je ne suis pas d'accord, voici pourquoi:

ssh -X ne fait rien d'autre qu'un 'export DISPLAY' un peu spécial et donc les
bibliothèques utilisées ne sont pas nécessaires. La seule nécessité serait
de disposer d'un gestionnaire de fenêtre "compatible" pour disposer de
certaines fonctionnalités (les thèmes peut-être ?)

client A ( serveur X11, shell qui lance ssh -X B )
server B ( avec les applications

Si sur la machine A, ton desktop est KDE - et que Gtk n'est pas installé
Une application Gtk que tu démarres sur B s'affiche parfaitement sur le
serveur X11 de A.

  ssh -X B
     Une ligne indique que xauth a ajouté un enregistrement au .Xauthority 
     pour autoriser les connections au client


$ echo $DISPLAY => localhost:10.0

     Sur la machine B, le port 6010 (6000 pour X11 + 10 numéro de display)
     a été ouvert par ssh pour transmettre le protocole X11 dans un tunnel
     SSH a destination du serveur X11 de la machine A


   $ netstat -anp | grep 6010
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      


$ xeyes &

   $ netstat | grep 6010
tcp        0      8 B:56542            B:6010             ESTABLISHED
tcp        0      0 B:6010             B:56542            ESTABLISHED


On observe ainsi la connection tcp entre l'application 'xeyes' (56542)
et le tunnel X11/ssh du port 6010...

Sur la machine A, xeyes évidemment s'affiche, et on peut observer la
connection réseau ssh mais pas la connection X11.

  $ netstat | grep B
tcp        0      0 A:42530     B:ssh      ESTABLISHED


Pourquoi on ne voit pas de connection X11 entre le client ssh/A et X11/A ?
Ici je n'ai qu'une hypothèse: l'utilisation d'une socket Unix ou de
Shared Memory dans le client ssh/A pour transmettre les commandes X11 au
serveur X11/A

Autre manipulation pour te prouver que c'est bien un tunnel X11/ssh:
- Fais Ctrl-D dans le shell ssh connecté à 'B' avec xeyes en fonctionnement

  => Le shell est fermé mais pas la connection ssh... car il y a encore un
     client qui utilise le tunnel X11


Lorsque tu quittes 'xeyes', le tunnel est désactivé et
la connection ssh est fermée elle aussi.

En conclusion, il n'y a aucune nécessité d'installer Gtk sur la machine A
si l'application Gtk tourne sur B... (seule la couche X11 est nécessaire
des deux côtés libX11 sur B et serveur X11 sur A)

Si je me trompe, merci de me corriger... je serai moins bête
A+
--
Yves Martin