openSUSE 11.3 – GUI-Anwendungen per SSH (X11-Forwarding) remote ausführen und anzeigen lassen

In diesem Artikel behandele ich das Thema „X11-Forwarding“ über SSH, um eine GUI-Anwendung (z.B. Thunderbird, OpenOffice, usw.) auf einem entfernten Desktop-Rechner auszuführen und z.B. auf einem Netbook anzeigen zu lassen. Das klingt sehr verlockend und die Einrichtung ist auch nicht so schwierig. ;-)

Bevor man eine Anwendung über das Netzwerk starten kann, muss man erst noch ein wenig vorarbeiten.

Auf dem entfernten Rechner (z.B. Desktop):

  1. Man öffnet die Datei /etc/ssh/sshd_config mit einem Editor als root
  2. Jetzt prüft man, ob die folgende Einstellung aktiv ist. Hinweis: Es darf keine Raute vorne weg sein:
    X11Forwarding yes
  3. Wenn man nur ein IPv4-Netzwerk (z.B 192.168.0.2) anstatt ein IPv6-Netzwerk (z.B. fe80::c0a8:2) verwendet, so sollte man besser den SSH-Server zwangsweise per IPv4 kommunizieren lassen. Andernfalls könnte es Probleme geben. Daher trägt man noch folgendes ein:
    AddressFamily inet
  4. Nachdem man die Konfiguration abgespeichert hat, muss man jetzt noch den SSH-Server neustarten:
    rcsshd restart
  5. Wenn der SSH-Server bei jedem Neustart mitstarten soll, so kann man dies im Runlevel-Editor ändern. Man ruft per ALT + F2 den Krunner auf und gibt ins Eingabefeld folgendes ein:
    yast2 runlevel

    Danach in der Liste den sshd aktivieren und mit Okay die Änderung bestätigen.

Auf dem Rechner (z.B. Netbook oder Notebook), von dem später eine Verbindung zum entfernten Rechner aufgebaut wird:

  1. Man öffnet die Datei /etc/ssh/ssh_config mit einem Editor als root
  2. Dann ändert man folgenden Eintrag
    #  ForwardX11 no

    in

       ForwardX11 yes

    ab.

  3. Abschließend prüft man noch, ob die folgende Einstellung aktiviert ist. Hinweis: Es darf keine Raute vorne weg sein:
    ForwardX11Trusted yes
  4. Diese Konfiguration speichert man nun ab.

Somit ist man jetzt mit der Konfiguration durch. ;-)

Wie baut man jetzt eine Verbindung zum entfernten Rechner auf und startet eine Anwendung (z.B. Dolphin)?

Zuerst benötigt man die lokale IP vom entfernten Rechner. Das kann man sehr leicht auf dem entfernten Rechner herausfinden und gibt in der Konsole folgendes ein:

ifconfig

Dann pickt man sich in der Ausgabe die IP-Adresse heraus
z.B. bei eth0: inet Adresse: 192.168.0.2

Man kann es auch über das Internet durchleiten lassen, jedoch benötigt man die IP-Adresse vom entfernten Rechner, die vom Internet-Provider zugeteilt wurde, und eine entsprechende Änderungen an der Firewall im Router (Port 22 von außen freischalten und zum „entfernten“ Rechner umleiten) müssen auch vorgenommen werden. Jedoch würde ich für Linux-Neulinge abraten, diese Änderung am Router vorzunehmen. Wer daran interessiert ist, sollte sich besser zuerst mit dem Thema „Sicherheit unter Linux“ auseinandersetzen. Das fängt mit der Stärke des Passwortes an und geht über Verwendung des SSH-Schlüssels und hört mit der Umlegung des SSH-Ports auf. (Dazu werde ich auch nochmal ein Artikel schreiben ;-) )

Jetzt geht’s ans Eingemachte und tippen folgendes in der Konsole auf dem Netbook (Notebook) ein, um z.B. Dolphin vom Desktop-Rechner zu starten und auf dem Netbook (Notebook) anzeigen zu lassen. (Bitte ersetzt hier den Usernamen und die IP vom entfernten Rechner):

ssh -X username@192.168.0.2 dolphin

Allgemein gilt folgendes:

ssh -X username@ip-adresse anwendung

Falls ein Firewall-Dienst auf dem entfernten Rechner aktiv ist, dann achtet darauf den SSH-Dienst (Secure Shell-Server) bzw. den Port 22 für externe Zugriffe freizugeben.

Have a lot of fun! ;-)

4 thoughts on “openSUSE 11.3 – GUI-Anwendungen per SSH (X11-Forwarding) remote ausführen und anzeigen lassen

  1. Hey, das ist eine super Anleitung und hat soweit unter 2 Linux-Rechnern gut geklappt :) Ist es auch möglich so eine Verbindung von einem Windows-Client zu starten. Ich habe das ganze schon mit PuTTY versucht und wollte das Programm firefox ansprechen. Dabei kam aber leider die Aussage, dass kein Display gefunden wurde. Selbst wenn ich mich als root anmelde und die Display-Variable auslese ist sie leer.
    Danke für eine evtl Lösung :)

  2. Danke für den Hinweis bzgl.

    AddressFamily inet

    Das war’s !
    Dieser Hinweis ist sonst „kaum“ zu finden ….

    Gruss
    PiNy

  3. Danke für die Anleitung, hat sofort funktioniert.

    „AddressFamily inet“ war bei mir entscheidend, auch wenn ich nicht ganz verstehe, warum einem dieses ipv6-Zeug immer wieder in die Quere kommt… als angeblich kommender Standard sollte es doch wissen, wo es hingehört… :lol:

    Eine Anmerkung: auf dem Server genügt ein „rcsshd reload“ (restart ist ja nicht immer gewünscht). Zumindest, um den „AddressFamily“-Eintrag zu ändern, reicht das jedenfalls.

Die Kommentarfunktion ist geschlossen.