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):
- Man öffnet die Datei /etc/ssh/sshd_config mit einem Editor als root
- Jetzt prüft man, ob die folgende Einstellung aktiv ist. Hinweis: Es darf keine Raute vorne weg sein:
X11Forwarding yes
- 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
- Nachdem man die Konfiguration abgespeichert hat, muss man jetzt noch den SSH-Server neustarten:
rcsshd restart
- 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:
- Man öffnet die Datei /etc/ssh/ssh_config mit einem Editor als root
- Dann ändert man folgenden Eintrag
# ForwardX11 no
in
ForwardX11 yes
ab.
- Abschließend prüft man noch, ob die folgende Einstellung aktiviert ist. Hinweis: Es darf keine Raute vorne weg sein:
ForwardX11Trusted yes
- 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!