Xclient sur un vserver debian

Les points à vérifier :

  • le vserver doit avoir une IP
  • le vserver doit avoir un localhost (dans /etc/hosts mettre l'IP du vserver puis son nom ex : vserver.univ.run, puis "localhost")
  • il faut impérativement que le nom vserver.univ.run soit résolu par le DNS. En effet, xauth va ajouter un cookie côté client X portant le nom de la machine... et si le serveur X ne peut pas résoudre ce nom par un appel au DNS, c'est mort. Peut-être que tout pourrait marcher seulement avec les adresses IP, mais dès qu'il y a un nom, il faut l'utiliser.
  • s'assurer que le serveur ssh (donc côté client X) n'écoute que sur son adresse (clause Listen dans le fichier de conf) et autorise le XForwarding (clause X11Forwarding yes, ajouter de plus la clause X11UseLocalhost no)

Extrait de /etc/ssh/sshd_config :

 ...

#ListenAddress ::
ListenAddress 10.10.23.21
...
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no

...
  • idem côté client ssh (et donc server X), s'assurer pour éviter toute interférence (bien que non constatée, c'est dans la littérature des howto) que le serveur ssh local, n'écoute que sur l'IP du serveur (à voir)

A faire :

  • installer sur le client X (donc serveur ssh), le paquet xbase-clients qui installera au passage xauth
sudo apt-get install xbase-clients

Normalement, ça suffit. On peut ensuite lancer depuis le serveur ssh, n'importe quel client X en passant par ssh -X. Exemple :

mamachine# ssh -X vserver.univ.run
vserver# enter jerome's password : xxxxxxx
vserver# xterm
Et la fenêtre xterm s'ouvre sur ma machine locale, et ceci sans besoin de faire des "xhost +" ou autres bidouilles.

Mieux encore : essayer ssh -YX pour forcer l'authentification xauth (d'après ce que j'en ai compris)

Ou encore : ssh -vXY pour voir tout ce qui s'échange lors de la transaction.
Comments