X11 Forwarding
 

Eine der absoluten Stärken von Linux sind die netzwerktechnischen Möglichkeiten. Den Login auf entfernte Rechner per ssh und sftp habe ich ja schon in einem vorigen Kapitel behandelt. Hier geht es nun um das sogenannte X11-Forwarding, welches es ermöglicht, grafische Programme auf einem Client-Rechner auszuführen und somit einen Linux-Server "fernzusteuern", bzw. aus der Ferne auf ihm zu arbeiten. Dabei ist es unerheblich ob man an einem Linux-Client oder einem Windows-Client sitzt, da es selbst für Windows eine X-Server Software gibt.
Fangen wir mal umgekehrt an und wenden wir uns zuerst Windows zu:

Windows als Client: MobaXterm

Unter Windows gibt es das Programm MobaXterm, welches ohne Installation (man führt lediglich die EXE aus) einen X-Server und ein Terminal zur Verfügung stellt. Das Terminal kennt alle üblichen Linux-Befehle. Sollte ein Befehl fehlen, kann man ihn -falls vorhanden- mittels PlugIns nachrüsten. Um nun einzelne Programme auszuführen startet man einfach die EXE Datei ab und loggt sich im Terminal mittels ssh auf dem entfernten Rechner ein:
# ssh udo@heim-pc
Anschließend genügt es das entsprechende Programm aufzurufen, z.B.
# kwrite
Möchte man mehrere Programme ausführen, ist es sinnvoll den Befehl mittels des UND-Zeichens im Hintergrund laufen zu lassen. So ist die Konsole wieder frei für weitere Eingaben:
# kwrite &
Genügen einem ein paar Programme nicht, kann man sich auch den kompletten Desktop auf den Rechner holen. Dazu bedient sich MobaXterm des Programmes Cygwin um die Fenster darzustellen. Für ein Debian System genügt dann im Terminal ein simples
# startkde

Linux als Client

Unter einem Linux-Client benötigt man natürlich keine zusätzliche Software, da Linux ja alles benötigte schon mit an Bord hat - eine ssh Installation natürlich vorrausgesetzt. Unter Debian sieht der zu verwendende Befehl ein klein wenig anders aus:
# ssh -X udo@heim-pc
Das große X aktiviert das X11-Forwarding. Nicht zu verwechseln mit dem kleinem x welches selbiges sogar unterbindet. Ansonsten funktioniert alles so wie unter MobaXterm: den Namen des Programms eingeben, fertig. Allerdings kann man sich den Zugriff auf den kompletten Desktop ein klein wenig komfortabler gestalten, da Linux ja mehrere sogenannte virtuelle Terminals unterstützt (zu erreichen mittels STRG+ALT und jeweils einer Funktionstaste F1-F7). Standardmäßig verwaltet Linux in der Regel sieben virtuelle Terminals, wobei in der Regel der Siebte für die grafische Oberfläche dient. Theoretisch könnte man aber soviel Terminals machen, wie F-Tasten vorhanden sind, also kann man unter dem (nicht aktivem) Terminal F12 einen eigenen X-Server starten, auf welchem dann der entfernte Desktop angezeigt wird. Dazu ist allerdings eine kleine Vorarbeit nötig. Debian unterbindet standardmäßig das abstarten eines X-Servers von einer Konsole aus der grafischen Umgebung, also muß man zuerst folgende Zeile in der Datei /etc/X11/Xwrapper.config von allowed_users=console auf allowed_users=anybody ändern. Danach kann man eine Konsole in KDE öffnen und mit folgendem Befehl den X-Server auf der virtuellen Konsole F12 abstarten:
# X :12.0 vt12 &
Das UND-Zeichen läßt das Programm wieder im Hintergrund laufen. Der X-Server hat hier die Nummer 12 und die Display Nummer 0 (:12.0). Mittels STRG+ALT+F7 wechselt man wieder zurück auf den KDE-Bildschirm und kann mit dem folgenden Befehl ein xterm-Fenster im neugestarteten X-Server abstarten. Sollte das Programm xterm fehlen, einfach mit apt-get install xterm nachinstallieren.
# xterm -display :12.0 -e ssh -X udo@heim-pc
Anschließend wechselt man mit STRG+ALT+F12 in den neuen X-Server und gibt im xterm für ein Debian System ein:
# startkde
und schon startet die grafische Oberfläche ab.