Heute lernen wir ein weniger bekanntes, interessantes und nützliches Feature über Linux kennen. Ich bin sicher, die meisten von Ihnen kennen SSH. Wir können über SSH sicher auf entfernte Linux-Systeme zugreifen. Aber wussten Sie, dass es möglich ist, X über SSH weiterzuleiten, um grafische Anwendungen remote auszuführen? Ja! Dieser Mechanismus wird als X11-Weiterleitung bezeichnet . In dieser Anleitung werden wir die X11-Weiterleitung mit SSH unter Linux konfigurieren.
Was ist X11-Weiterleitung?
Die X11-Weiterleitung ist eine Methode, mit der ein Benutzer eine grafische Anwendung starten kann, die auf einem entfernten Linux-System installiert ist, und diese Anwendungsfenster (Bildschirm) an das lokale System weiterleitet. Das entfernte System muss nicht über einen X-Server oder eine grafische Desktop-Umgebung verfügen. Daher ermöglicht die Konfiguration der X11-Weiterleitung mit SSH den Benutzern, grafische Anwendungen sicher über eine SSH-Sitzung auszuführen.
Um es für Laien auszudrücken,
- Wir verbinden uns über SSH mit einem entfernten System
- Und dann starten wir eine GUI-Anwendung (die auf dem Remote-System installiert ist) von dieser SSH-Sitzung,
- Jetzt läuft die GUI-Anwendung auf dem Remote-System, aber das Anwendungsfenster erscheint auf unserem lokalen System. Daher können wir dieses Remote-GUI-Programm auf Ihrem lokalen System so verwenden, wie wir ein lokal installiertes Programm verwenden.
Klar? Lassen Sie uns nun fortfahren und sehen, wie Remote-GUI-Anwendungen über eine SSH-Sitzung ausgeführt werden.
X11-Weiterleitung mit SSH unter Linux konfigurieren
Für die Zwecke dieses Leitfadens werde ich die folgenden zwei Systeme verwenden:
- Remote-Server - CentOS 8-Minimalserver (keine GUI).
- Lokales System – Ubuntu 20.04 LTS mit Gnome DE.
Das Konfigurieren der X11-Weiterleitung ist trivial.
Stellen Sie sicher, dass Sie "xauth" installiert haben auf Ihrem Remote-Serer-System. Wenn es nicht installiert ist, führen Sie den folgenden Befehl als Root- oder Sudo-Benutzer aus:
# dnf install xorg-x11-xauth
Gehen Sie zu Ihrem Remote-System (in meinem Fall ist es CentOS 8) und bearbeiten Sie "/etc/ssh/ssh_config" Datei mit Ihrem bevorzugten Editor:
# nano /etc/ssh/ssh_config
Folgende Zeile hinzufügen/ändern:
[...] X11Forwarding yes

X11-Weiterleitung mit SSH unter Linux konfigurieren
Drücken Sie Strg+O zum Speichern und Strg+X um die Datei zu schließen. Starten Sie den sshd-Dienst neu, um die Änderungen zu übernehmen:
# systemctl restart sshd
Erledigt! Wir haben die X11-Weiterleitung konfiguriert.
Gehen Sie nun zu Ihrem Client-System (in meinem Fall ist es Ubuntu 20.04) und greifen Sie mit dem Befehl:
über SSH auf den Remote-Server zu$ ssh -X [email protected]
Hier, -X Option wird verwendet, um die X11-Weiterleitung über SSH zu aktivieren. Ersetzen Sie „[email protected]“ durch den Nutzernamen und die IP-Adresse Ihres Remote-Servers.
Beim ersten Mal sehen Sie die folgende Warnmeldung.
/usr/bin/xauth: file /root/.Xauthority does not exist
Allerdings ist die .Xauthority
Datei sollte automatisch während der ersten Anmeldung generiert werden, daher sollten nachfolgende Anmeldungen in Ordnung sein.
Starten Sie als Nächstes alle GUI-Anwendungen aus dieser SSH-Sitzung. Ich habe den grafischen Texteditor Gedit bereits auf meinem CentOS 8-Server installiert, also werde ich ihn mit dem Befehl starten:
# gedit
Der gedit-GUI-Fensterbildschirm erscheint nun in Ihrem lokalen System.

Führen Sie entfernte grafische Anwendungen über eine SSH-Sitzung in Linux aus
Sie können mit der auf dem Remote-Server installierten Gedit-Anwendung über die Anzeige, Maus und Tastatur Ihres lokalen Systems interagieren.
Obwohl mein CentOS 8-Server keinen GUI-Desktop hat, kann ich den grafischen Gedit-Editor öffnen und ihn von meinem lokalen Ubuntu-System aus verwenden. Hier ist die visuelle Demo:
X11-Weiterleitung in Putty konfigurieren
Wenn Sie Putty verwenden Client für den Zugriff auf entfernte Systeme geben Sie die IP oder den Hostnamen Ihres entfernten Systems auf der Registerkarte Sitzung ein:

Verbinden Sie sich mit Putty mit dem entfernten System
Navigieren Sie als Nächstes zu Verbindung -> SSH -> X11 und aktivieren Sie die X11-Weiterleitungsoption. Klicken Sie auf Öffnen, um eine neue Putty-Sitzung einzurichten:

Konfigurieren Sie die X11-Weiterleitung in Putty
Geben Sie den Benutzernamen und das Passwort des Remote-Servers ein. Sobald Sie sich über Putty mit dem Remote-System verbunden haben, starten Sie eine beliebige X-Anwendung, die auf dem Remote-Server installiert ist.

Führen Sie grafische Anwendungen über die Putty-Sitzung aus
Beginnen Sie von Ihrem lokalen System aus mit der Remote-GUI-Anwendung zu interagieren!