dozent@linux37:~> xhost +linux36 217.89.70.36 being added to access control list dozent@linux37:~> ssh -l walter linux36 Password: Last login: Tue Jun 15 12:50:19 2004 It's a good day to die ! walter@linux36:~> export DISPLAY=linux37:0 walter@linux36:~> nedit
Mit SSH geht es nun wesentlich einfacher. Sie verbinden sich einfach wieder über den SSH-Client mit dem entfernten Rechner unter Angabe der Option -X. Dann startet der SSH-Server einen virtuellen X-Server (im Beispiel der X-Server :10) und setzt die Variable DISPLAY entsprechend. Die Daten werden nun vom X-Client an diesen virtuellen X-Server gesendet. Von dort werden die Daten über die SSH-Verbindung weitergeleitet zum lokalen Rechner. Diese Vorgang bezeichnet man auch als tunneln und die Verbindung als SSH-Tunnel. Der SSH-Client auf dem lokalen Rechner leitet die Daten dann weiter an den lokalen X-Server. Deshalb ist es weder notwendig auf dem entfernten Rechner die Variable DISPLAY zu setzten, noch auf dem lokalen Rechner den X-Server für den entfernten Rechner freizugeben.
dozent@linux37:~> xhost access control enabled, only authorized clients can connect dozent@linux37:~> ssh -X -l walter linux36 Password: Last login: Tue Jun 22 11:11:40 2004 from 217.89.70.37 It's a good day to die ! walter@linux36:~> nedit walter@linux36:~> echo $DISPLAY localhost:10.0 walter@linux36:~> xauth Using authority file /home/walter/.Xauthority xauth> list linux36/unix:10 MIT-MAGIC-COOKIE-1 6344f27379b67ce38ab6385bc0c760de xauth> exit
Neben der einfachen Konfiguration hat diese Art der Datenübertragung noch einen Vorteil. Da die Päckchen des X-Protokolls nun über die SSH-Verbindung laufen, sind sie verschlüsselt. Ein Außenstehender kann nun nicht mehr den Netzwerkverkehr zwischen X-Client und X-Server belauschen.