Remote mittels X-Server auf andere Systeme zugreifen

Wenn ein Desktop auf einem Linux-Rechner gestartet ist, geschieht die Kommunikation der grafischen Oberfläche mit dem Betriebssystem über einen X-Server. Dieser bildet eine Zwischenschicht zwischen dem Desktop und dem Betriebssystem. Grundsätzlich wird dabei das interne Netzwerk des Rechners verwendet, auch wenn der Rechner nicht in einem Netzwerk stehen sollte.
Das Praktische an dem X-Protokoll ist die Netzwerktransparenz. So ist ein X-Server ist nicht auf den lokalen Rechner angewiesen, man kann mit ihm auf andere Rechner zugreifen und andere Rechner können den lokalen X-Server verwenden. Sofern lokaler und entfernter Rechner beide Unix-/Linux-Systeme beinhalten, werden somit Zusatzprotokolle wie VNC und RDP überflüssig.
Das ist auch gut so, denn bei VNC und RDP wird die graphische Ausgabe auf dem entfernten Rechner erzeugt und dann über das Netzwerk transportiert. Wohingegen bei X auf dem lokalen Rechner gerendert wird. Somit wird Traffic und eine Belastung des Remote-Rechners gespart.

Allerdings der große Nachteil von X ist die unverschlüsselte Übertragung der Daten. Das lässt sich allerdings wieder mit einer Tunnelung abfangen.

Öffnen von Fenstern auf dem lokalen Desktop

Voraussetzung ist hierbei, dass in der Datei /etc/ssh/sshd_config mit folgenden Parameter das X11-Forwarding gesetzt ist.

X11Forwarding yes

Dann kann man sich mit der Option -X per ssh einlogen

ssh -X username@remote-rechner

und dann das gewünschte Programm auf dem Remote-Rechner starten. Dasselbe erreicht man über einen Direktaufruf

ssh -X username@remote-rechner /pfad/programm-aufruf

Somit werden anstelle eines kompletten Remote-Desktop nur die jeweiligen entfernten Anwendungen gestartet. Was ernorm an Resourcen einsparen hilft. So können auch Programme auf einem kleinen Raspberry Pi-Rechner, die zur Netzwerk-Überwachung laufen direkt auf den eigenen Desktop geholt werden.

Anzeigen des Remote-Desktops in einem seperaten Fenster

Mit Hilfe eines geschachtelten (nested) X-Servers kann man zwei und mehr X-Server im Haupt-X-Server (:0) laufen lassen. Hierzu existertdas Tool Xephyr, das man sich wie folgt installieren kann.

Für Debian-Systeme

apt-get install xserver-xephyr

Für OpenSuSE-Linux

zypper install xorg-x11-server-extra

Ein Terminal kann man dann mit

Xephyr :1 -screen 1024x768 -dpi 96 -keybd ephyr,,,,xkblayout=de & DISPLAY=:1 ssh -X username@remote-machine xterm &

starten.

Parameter
  • Da der laufende X-Server die Nummer :0 hat, wird der neue X-Server :1 bekommen und so fort :2, :3...
  • -screen 1024x768 öffenet ein in dieser Grösse Terminalfenster.
  • -dpi 96 sollte sein, da Xephyr die Monitordaten nicht abfragen kann. Ohne diese Angabe ist u.U. die Schrift zu klein.
  • -keybd damit sonst die Tastaturbelegung englisch ist.
  • Mit DISPLAY=:1 wird die nachfolgende Anweisung dem neuen X-Server zugewiesen.
  • Und ssh stellt die Verbindung zum Remote-Rechner her.