X11-Forwarding über SSH

Um den Raspberry Pi und andere Systeme, welche mit Linux laufen, über das Netzwerk anzusteuern, haben wir bereits SSH kennengelernt. Das SSH-Protokoll erlaubt uns den Zugriff auf das Terminal des Systems, über welches wir im Prinzip alles machen können.
Doch manchmal muss man auch Programme ausführen, welche nur mit einer grafischen Benutzeroberfläche laufen. Versucht man dies via PuTTY bekommt man einfach die Meldung „cannot open display“. Der Grund hierfür ist der fehlende XServer. Und hier kommen wir zum X11-Forwarding.

X11 Fwd Midori

Der Webbrowser Midori via X11-Forwarding auf Windows.

Was ist X11?

X11, oder auch X Window System, ist eine Sammlung an Protokollen, Scripts und Programmen, welche es Linux erlaubt, angeschlossene Monitore anzusprechen. Betreibt man das System allerdings ohne Monitor gibt es folglich auch keinen Grund, einen solchen XServer zu starten, da dieser nur unnötig Ressourcen belegen würde.

Würde man nun unbedingt ein grafisches Programm welches einen XServer voraussetzt auf dem Raspberry Pi starten wollen, so könnte man einen XServer starten, eine VNC Sitzung einrichten und dann über diese Remote Desktop Verbindung alles regeln. Wer aber nicht einsieht, für ein einzelnes Programm diese ganzen Anwendungen zu installieren, kann auch einfach zum X11-Forwarding greifen.

Was ist X11-Forwarding?

Das SSH-Protokoll bietet eine schöne Funktion namens X11-Forwarding an. Der Name ist hier Programm, denn alle X11-Befehle, welche von einem Programm zur Darstellung ausgeführt werden müssen, werden nicht an das lokale System sondern an ein via SSH verbundenes System geschickt. Bedeutet also: Das Programm läuft auf dem Raspberry Pi, das Fenster wird aber auf dem Windows-PC angezeigt, welcher per SSH zugreift. Neben der schnellen Einrichtung belastet das X11-Forwarding den Raspberry Pi auch nicht so stark, als würde man einen VNC- und XServer aufsetzen.

X11-Forwarding einrichten

Um das X11-Forwarding nutzen zu können benötigt man folgendes:

  • ein System mit Linux und aktiviertem SSH-Protokoll
  • ein SSH-Client mit X11-Forwarding (PuTTY)
  • einen XServer für Windows (Xming)

Als erstes müssen wir dem System, auf das wir via SSH verbinden, sagen dass es das X11-Forwarding zulassen soll, aus Sicherheitsgründen könnte es per default deaktiviert sein. Dazu öffnen wir die Datei /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config
Die Datei /etc/ssh/sshd_config

Die Datei /etc/ssh/sshd_config. „X11Forwarding yes“ muss aktiviert sein.

Hier suchen wir die Zeile „X11Forwarding yes“ und achten darauf, dass diese aktiviert, also nicht durch eine # auskommentiert wird. Ist dies der Fall, ist die Einstellungsarbeit am Linux-System schon beendet. Weiter geht es mit dem Windows-PC.

Hier müssen wir erst einmal einen X-Server installieren, welcher die Befehle vom Linux-System annimmt. Ich habe dafür das Programm Xming genommen. Nach der Installation läuft es im Hintergrund, nur sichtbar durch ein kleines Tray-Icon. Weitere Einstellungen muss man bei diesem Programm nicht vornehmen. Wenden wir uns nun PuTTY zu.

PuTTY ist quasi der beliebteste SSH-Client, er ist klein, schnell, portable und unterstützt X11-Forwarding. Dafür müssen wir einfach nur, vor dem Aufbauen der Verbindung, auf der linken Seite die Kategorie Connection → SSH → X11 anwählen. Hier setzen wir das Häkchen bei „Enable X11 forwarding“ und im Textfeld „X display location“ tragen wir „localhost:0“ ein. Damit ist angegeben, welches Display angesprochen werden soll, wenn X11-Befehle hereinkommen.

PuTTY Konfiguration

Die PuTTY Konfiguration, um X11 Forwarding zu aktivieren. Haken setzen und „localhost:0“ eintragen.

Jetzt öffnen wir einfach eine SSH-Verbindung und starten ein Programm, welches einen XServer voraussetzt. Ich habe auf meinem Raspberry Pi den Webbrowser Midori gestartet und nach einer kurzen Ladezeit erschien auch prompt das Fenster auf meinem Bildschirm. Ich kann jetzt jedes Programm so benutzen, als würde ich es direkt auf dem Linux-System ausführen.

Diese Anleitung orientiert sich von den Beispielen her zwar am Raspberry Pi mit der Distribution Raspbian, sollte ohne weiteres aber auch auf anderen Distributionen anwendbar sein.

Dieser Eintrag wurde veröffentlicht in Linux
Bookmarken: Permanent-Link Schreibe einen Kommentar oder hinterlasse einen Trackback: Trackback-URL.

2 Kommentare

  1. Peter Woderschek
    Erstellt am 30. Dezember 2013 um 14:34 | Permalink zum Kommentar

    Hallo Sebastian,

    ich bin neu hier, aber auch in Linux. Meinen Pi habe ich schon aufgesetzt, alles funktioniert eigentlich einwandfrei. Mit den Commands muss ich mich noch viel besser vertraut machen, aber das wird schon.

    Das X11 Forwarding funktioniert einwandfrei. Da ich im Moment keinen Monitor verwende und den TV (über HDMI angeschlossen, funzt alles) auch nur im Notfall verwenden will, möchte ich gerne alles von meinem Laptop aus machen. Wie in Deinem Beispiel habe ich auch Midori über Xming am Laptop bekommen.

    Frage: Ist es möglich den gesammten Desktop von der Konsole aus auf den Laptop zu bringen? Dass wäre dann ein vollwertiges X-Terminal. Ich habe viele Sachen versucht, aber kein Erfolg.

    Vielen Dank für die Hilfe bei Euch auf TC. Alles Gute für das neue Jahr!

    Peter

  2. Peter Woderschek
    Erstellt am 30. Dezember 2013 um 15:51 | Permalink zum Kommentar

    Hallo,

    hab soeben durch Zufall das Command gefunden: startlxde

    Alles geht und ist super!

    LG
    peter

Ein Trackback

Achtung: Wordpress interpretiert bestimmte Zeichenfolgen als Markup und verändert diese. Nutzt für Programmcode lieber Gist oder PasteBin-Services und verlinkt die Code-Schnipsel.

Post a Comment

Ihre E-Mail wird niemals veröffentlicht oder verteilt. Benötigte Felder sind mit * markiert

*
*

Du kannst diese HTML Tags und Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>