X-Anwendungen mit SSH forwarden
Lizenz: Dieser Artikel wurde als problematisch in Bezug auf der Lizenz markiert, dafür kann es verschiedene Gründe geben:
Bitte hilf mit alle diese Fragen zunächst zu klären, danach kann dieser Hinweis entfernt werden. |
Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.
|
Ziel dieser Anleitung ist es, eine X bzw. grafische Anwendung über SSH zu tunneln, so dass sie auf einem anderen Rechner dargestellt wird als sie in Wirklichkeit läuft. Was hier (noch) nicht behandelt wird ist wie man einen ganzen window manager (kde, gnome etc.) über das Netzwerk tunnelt.
Voraussetzungen
- 2 Debian-Rechner, die über ein Netzwerk verbunden sind. Auf beiden Rechnern muss das Paket ssh installiert sein.
- Auf dem Rechner mit Bildschirm müssen ein X-Window-System sowie ein window manager installiert sein.
- Auf dem Rechner, wo die Anwendung ausgeführt, aber nicht angezeigt wird, muss mindestens xauth installiert sein (außerdem zu empfehlen ist xterm, und xbase-clients das eine Reihe kleiner mehr oder weniger nützliche X-Programme enthält). Ein Anfänger kann aber auch ganz einfach ein komplettes X-Window-System inkl. window manager auf den ihm geläufigen Weg installieren.
X11 forwarding konfigurieren
Auf dem Server-Rechner muss man jetzt das X11 forwarding aktivieren. Dazu als Root eingeloggt, in der Datei /etc/ssh/sshd_config nach der Zeile
X11Forwarding no
suchen und das no
durch yes
ersetzen.
Anschließend die Konfiguration vom ssh-Dienst neu einlesen:
root@debian:~# service ssh reload
Hinweis: In der default Konfiguration sollte X11Forwarding bereits yes sein.
|
SSH-Sitzung aufbauen
Dann von dem Rechner mit dem Bildschirm aus eine SSH-Sitzung aufbauen - natürlich user und host mit den eigenen Werten ersetzen.
user@debian:~$ ssh -X user@host
Das -X
setzt auf dem Rechner, auf dem man sich einloggt, die Umgebungsvariable $DISPLAY
. Dadurch wird bewirkt, dass die grafische Ausgabe auf dem anderen Rechner stattfindet.
Zum Testen kann man ja mal
user@debian:~$ echo $DISPLAY
eingeben. Es sollte etwas ähnliches wie localhost:10.0
ausgegeben werden.
In einigen Tutorials wird auch empfohlen, mittels des export-Befehls die IP des Rechners mit dem Bildschirm in der $DISPLAY
-Variable zu hinterlegen. Allerdings ist die Übertragung dann nicht verschlüsselt und das X-Window-System müsste entsprechend konfiguriert werden.
Zum Starten einer Anwendung in der Konsole den Namen, z.B. xclock oder xterm, eingeben. Die Anwendung sollte dann auf dem lokalen Rechner angezeigt werden. Wenn das geklappt hat, kann man es auch mit anderen Anwendungen versuchen.
Ein Auszug der Syntax von /usr/bin/ssh:
ssh [user@]hostname [command]
Folgender Befehl startet also bspw. direkt das Programm x-terminal-emulator e.g. xterm, auf dem entfernten System. Zeigt das Fenster aber lokal an:
user@debian:~$ ssh -X user@host x-terminal-emulator
Alternativen
- Ein weiteres Programm, das sehr gut für den Remotezugriff geeignet sein soll ist FreeNX.
- Als vergleichsweise einfache Möglichkeit, remote auch auf Windows Maschinen oder umgekehrt zuzugreifen, empfiehlt sich VNC.
Migration abgeschlossen: Dieser Artikel wurde vollständig aus dem alten Wiki migriert. |