So richten Sie einen Remote-Desktop mit X2Go unter Debian 8 ein

Einführung

Aus Gründen der Effizienz, Sicherheit und der Möglichkeit, alles über die Befehlszeile auszuführen, verwenden viele Server keine grafische Benutzeroberfläche. Es gibt jedoch Situationen, in denen Sie GUI-Anwendungen auf Ihren Remoteservern ausführen möchten, z. B. wenn Sie Websites in Browsern testen oder eine remote zugängliche Arbeitsstation mit einer vollständigen Desktopumgebung einrichten möchten.

Die typische Lösung für die Interaktion mit einer grafischen Benutzeroberfläche auf einem Remotecomputer unter Linux oder anderen * nix-Varianten ist Virtual Network Computing (VNC). Leider ist VNC notorisch träge, standardmäßig unsicher und erfordert viel manuelle Konfiguration, um betriebsbereit zu sein.

Im Gegensatz dazu bietet X2Go mehrere Vorteile:

  • Anstatt Bilder vom Remote-Computer an einen Computer wie VNC zu senden, verwendet X2Go eine modifizierte Version des X-Servers (grafisch) und des X11-Protokolls, um den Datenaustausch zwischen Client und Server zu minimieren. Auf diese Weise erhalten Sie ein nahezu lokales Desktop-Erlebnis. Die einzige Voraussetzung für diese Art von Leistung ist, dass die Netzwerkentfernung zwischen Client und Server nicht zu groß ist. Wenn Sie den Server vom Clientcomputer aus anpingen, sollte die Roundtrip-Zeit 100 Millisekunden nicht überschreiten. Nahezu 50 ms wären optimal und 200 ms wären akzeptabel, aber nicht großartig.

  • X2Go arbeitet mit Ihrem vorhandenen SSH-Dämon zusammen und verschlüsselt den gesamten Datenverkehr zwischen dem Client und dem Server. Dabei wird auf denselben bewährten und sicheren Authentifizierungsmechanismus zurückgegriffen.

  • X2Go erfordert keine komplexe manuelle Konfiguration. Es kann die Sitzung einrichten und gängige Desktop-Umgebungen wie XFCE, LXDE, MATE und andere automatisch starten.

  • Im Gegensatz zu VNC richtet X2Go die Umgebung bei der Anmeldung ein, sodass Sie nicht ständig einen X-Server laufen lassen müssen. Außerdem läuft Ihre Sitzung auch nach dem Trennen der Verbindung weiter. Wenn Sie die Verbindung wieder herstellen, wird wie auf einem lokalen Desktop alles so angezeigt, wie Sie es verlassen haben.

  • X2Go unterstützt mehrere Anmeldesitzungen, Desktops und Benutzer, die in ihren eigenen separaten Umgebungen angemeldet sind.

  • Anstelle einer vollständigen Desktop-Umgebung können Sie einzelne grafische Anwendungen in X2Go starten, um die Ressourcen Ihres lokalen Computers zu schonen und gleichzeitig die leistungsstärkeren Ressourcen eines Servers zu nutzen. Außerdem können Aufgaben tagelang remote ausgeführt werden.

Ein solches Setup ist nützlich, wenn:

  • Sie benötigen diese Art von Desktop-Umgebung, können jedoch kein Linux-basiertes Betriebssystem lokal installieren.

  • Sie machen eine Reise, können aber Ihren Computer nicht mitnehmen.

  • Ihr Internetdienstanbieter stellt Ihnen nur sehr wenig Bandbreite zur Verfügung, Sie benötigen jedoch Zugriff auf Dutzende oder Hunderte von Gigabyte an Daten.

  • Sie benötigen eine separate Maschine, um wochen- oder monatelang an etwas zu arbeiten.

  • Sie arbeiten mit einem Team und jeder benötigt Zugriff auf einen einzelnen Remote-Desktop.

  • Sie benötigen eine Kombination aus grafischem Desktop, Hochgeschwindigkeits-Internet, zuverlässiger Stromquelle und der Fähigkeit, Ressourcen schnell zu vergrößern und zu verkleinern.

In diesem Tutorial empfehlen wir Debian über Ubuntu, da einige Versionen von Ubuntus Standard-DE Unity nicht mit X2Go kompatibel sind. Und alternative Desktop-Umgebungen können unter Ubuntu manchmal problematisch sein.

Ebenso empfehlen wir XFCE, da für den Betrieb keine dedizierte Grafikkarte erforderlich ist, wodurch die Kompatibilität mit X2Go verbessert wird. Aber auch LXDE, Mate (mit deaktiviertem Compositing) und sogar ältere KDEs, Unity und Cinnamon (mit einigen Verbesserungen) können funktionieren.

Schließlich bietet Firefox - wenn * xrender * aktiv ist (was in Debian 8 standardmäßig der Fall ist) - normalerweise eine flüssigere Erfahrung mit X2Go.

Nachdem Sie dieses Tutorial durchgearbeitet haben, verfügen Sie über einen Linux-Desktop, mit dem Sie eine Remoteverbindung herstellen können, und der genau dieselben Dienstprogramme enthält, die Sie durch die lokale Installation von Debian XFCE erhalten würden. Durch die Installation und Konfiguration einer Firewall schützen Sie außerdem Ihren Remotedesktop, was die Ausnutzung erschwert.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen können, benötigen Sie:

  • Eine Debian 8 x64-Instanz mit 1 oder 2 GB RAM. (1 GB ist minimal, 2 GB sind am Anfang sicherer und 4 GB wären optimal). Wählen Sie einen Serverstandort, der möglichst nahe an dem Bereich liegt, von dem aus Sie eine Verbindung herstellen möchten.

  • Ein Benutzer mit Sudo-Berechtigungen; Wenn Sie diesem Handbuch folgen, werden Sie beginnen: Initial Server Setup with Debian 8.

Denken Sie daran, dass die Anwendung vom Linux-Kernel beendet wird, wenn Ihnen der Arbeitsspeicher ausgeht, und Sie möglicherweise Ihre Arbeit verlieren. Wenn Sie wissen oder feststellen, dass die von Ihnen verwendeten Programme viel RAM benötigen, können Sie Ihr Droplet ausschalten und die Größe nach Bedarf ändern.

Schritt 1 - Firewall des Servers

Die Installation einer gesamten Desktop-Umgebung zieht viele zusätzliche Software-Abhängigkeiten und -Empfehlungen nach sich, von denen einige möglicherweise versuchen, Netzwerk-Ports zu öffnen. Beispielsweise könnte das in vielen DEs enthaltene Common UNIX Printing System (CUPS) versuchen, Port 631 zu öffnen. Während ein Dienst wie CUPS zu Hause nützlich sein kann, möchten wir nicht, dass unser Server dem gesamten Internet ausgesetzt ist. Daher ist es eine gute Idee, jede eingehende Verbindung zu blockieren. Die einzige Ausnahme ist Port 22, der offen bleibt, damit wir uns mit SSH und X2Go verbinden können.

Um unseren Server zu sichern, verwenden wir die unkomplizierte Firewall (Uncomplicated Firewall, UFW), da sie weniger fehleranfällig ist, einfacher zu verstehen und zu verwalten ist und besser zu unserem Ziel passt, nur Verbindungen zu einem Port zuzulassen. iptables und andere anspruchsvollere Firewalls eignen sich besser für erweiterte und komplexe Regeln, die detailliertere Informationen erfordern. (Eine Kurzanleitung zu allgemeinen Befehlen finden Sie unter UFW Essentials: Common Firewall Rules and Commands.)

Installieren Sie zuerst UFW:

sudo apt-get install ufw

Standardmäßig sollte die Firewall zu diesem Zeitpunkt inaktiv sein. Sie können überprüfen mit:

sudo ufw status verbose

Das Ergebnis sollte sein:

OutputStatus: inactive

Das Überprüfen des Status zu diesem Zeitpunkt ist wichtig, um zu vermeiden, dass wir uns aussperren, wenn "+ ufw +" aktiv ist, wenn wir später alle eingehenden Verbindungen blockieren.

Wenn UFW bereits aktiv ist, deaktivieren Sie es mit:

sudo ufw disable

Legen Sie nun die Standard-Firewall-Regeln fest, um alle eingehenden Verbindungen zu verweigern und alle ausgehenden Verbindungen zuzulassen:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Und erlauben Sie SSH-Verbindungen zum Server (Port 22):

sudo ufw allow 22

Aktivieren wir nach den geltenden Regeln "+ ufw +":

sudo ufw enable

Dies wird Folgendes ausgeben:

OutputCommand may disrupt existing ssh connections. Proceed with operation (y|n)?

Geben Sie "+ a " ein und drücken Sie " ENTER", um die Firewall zu aktivieren.

Wenn Sie auf ein Problem stoßen und feststellen, dass der SSH-Zugriff blockiert ist, folgen Sie https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-console-to-access-your-droplet [So verwenden Sie die DigitalOcean-Konsole für den Zugriff auf Ihr Droplet], um den Zugriff wiederherzustellen.

Mit unserer Firewall gibt es nur einen Zugangspunkt zu unserem Server und wir sind bereit, die grafische Umgebung für den X2Go-Server zu installieren.

Schritt 2 - Installieren der Desktop-Umgebung

In diesem Lernprogramm installieren Sie die XFCE-Desktopumgebung. Es gibt zwei Möglichkeiten, dies zu erreichen, aber Sie müssen nur eine * auswählen * - entweder die Minimal-Desktop-Umgebung oder die Full-Desktop-Umgebung.

  • Minimale Desktop-Umgebung *: Wenn Sie einen kleinen Kernsatz von Paketen installieren und dann darauf aufbauen möchten, indem Sie alles, was Sie später benötigen, manuell hinzufügen, können Sie das + xfce4 + metapackage verwenden.

Ein Metapaket enthält keine eigene Software, sondern hängt nur von anderen Paketen ab, die installiert werden müssen. Auf diese Weise kann eine ganze Sammlung von Paketen gleichzeitig installiert werden, ohne dass jeder Paketname einzeln in die Befehlszeile eingegeben werden muss.

Installieren Sie + xfce4 + und alle zusätzlichen Abhängigkeiten, die zur Unterstützung benötigt werden:

sudo apt-get install xfce4
  • Full Desktop Environment: * Wenn Sie nicht jede benötigte Komponente auswählen möchten und stattdessen eine Reihe von Standardpaketen wie ein Textverarbeitungsprogramm, einen Webbrowser, einen E-Mail-Client und anderes Zubehör vorinstalliert haben möchten, können Sie auswählen + task-xfce-desktop +.

Installieren und konfigurieren Sie eine vollständige Desktop-Umgebung, die derjenigen ähnelt, die Sie mit Debian XFCE von einer bootfähigen DVD auf Ihrem lokalen PC erhalten würden:

sudo apt-get install task-xfce-desktop

Nachdem unsere grafische Umgebung installiert und konfiguriert wurde, müssen wir eine Möglichkeit einrichten, sie von einem anderen Computer aus anzuzeigen.

Schritt 3 - Installieren von X2Go auf dem Server

X2Go wird mit zwei Hauptkomponenten geliefert: dem Server, der die grafische Sitzung auf dem Remotecomputer startet und verwaltet, und dem Client, den wir auf unserem lokalen Computer installieren, um den Remotedesktop oder die Remoteanwendung anzuzeigen und zu steuern.

Da Debian den X2Go-Server nicht in seine Standard-Repositorys einbezieht, müssen wir der Konfiguration des Paketmanagers ein zusätzliches Repository hinzufügen.

Importieren Sie zunächst den öffentlichen Schlüssel der X2Go-Entwickler. Dies ist eine Sicherheitsmaßnahme, um sicherzustellen, dass wir nur Pakete herunterladen und installieren können, die ordnungsgemäß mit ihren privaten Schlüsseln signiert sind.

sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E

Fügen Sie nun das Repository zu den Konfigurationsdateien des Paketmanagers hinzu:

echo 'deb http://packages.x2go.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/x2go.list

Dies erstellt die Datei "+ / etc / apt / sources.list.d / x2go.list " und fügt die Zeile " deb http://packages.x2go.org/debian jessie main +" hinzu, die dem Paketmanager mitteilt, wo die Ergänzungspakete zu finden.

Geben Sie den folgenden Befehl ein, um die Datenbank der verfügbaren Softwarepakete zu aktualisieren:

sudo apt-get update

Und zum Schluss installieren Sie X2Go auf dem Server:

sudo apt-get install x2goserver x2goserver-xsession

Zu diesem Zeitpunkt ist keine weitere Einrichtung auf Ihrem Server erforderlich. Beachten Sie jedoch, dass Sie Ihren privaten SSH-Schlüssel auf jedem Computer zur Verfügung haben müssen, von dem aus Sie sich anmelden möchten, da die SSH-Kennwortauthentifizierung aus Sicherheitsgründen deaktiviert ist.

Wir sind nun mit dem Einrichten des Servers fertig und können "+ exit +" eingeben oder das Terminalfenster schließen. Die restlichen Schritte konzentrieren sich auf den Client für Ihren lokalen Computer.

Schritt 4 - X2Go-Client lokal installieren

Wenn Sie Windows auf Ihrem lokalen Computer verwenden, können Sie die Client-Software von http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe herunterladen.

Nachdem Sie Ihre bevorzugte Sprache ausgewählt und der Lizenz zugestimmt haben, führt Sie ein Assistent durch die einzelnen Schritte des Installationsvorgangs. Normalerweise sollte es keinen Grund geben, einen der in diesen Schritten vorab ausgefüllten oder ausgewählten Standardwerte zu ändern.

Wenn Sie macOS lokal ausführen, finden Sie die Client-Software unter http://code.x2go.org/releases/X2GoClient_latest_macosx_10_9.dmg.

Doppelklicken Sie auf die .dmg-Datei, um einen Ordner mit der ausführbaren Datei für Copyright, Lizenz und X2Go-Client zu öffnen. Doppelklicken Sie dann auf die ausführbare Datei, um den Client zu starten.

Und wenn Sie Debian oder Ubuntu verwenden, können Sie den X2Go-Client installieren mit:

sudo apt-get install x2goclient

Wenn Sie zusätzliche Informationen zu den Clients benötigen oder Informationen aus dem Quellcode erstellen möchten, besuchen Sie X2Go’s official documentation.

Nachdem der Desktop-Client installiert ist, können wir seine Einstellungen konfigurieren und eine Verbindung zum X2Go-Server herstellen, um unseren Remote-XFCE-Desktop zu verwenden.

Schritt 5 - Herstellen einer Verbindung zum Remotedesktop

Wenn Sie den X2Go-Client zum ersten Mal öffnen, sollte das folgende Fenster angezeigt werden. Wenn dies nicht der Fall ist, klicken Sie oben links auf "Sitzung" und wählen Sie "Neue Sitzung".

image: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/create-new-session.png [X2Go Client Screenshot - Erstellen eines Neue Sitzung]

Geben Sie im Feld * Sitzungsname * etwas ein, um die Server besser unterscheiden zu können. Dies kann besonders nützlich sein, wenn Sie vorhaben, eine Verbindung zu mehreren Computern herzustellen, da alle Namen im Hauptfenster des Programms aufgelistet werden, sobald Sie Ihre Einstellungen speichern.

Geben Sie die IP-Adresse oder den Hostnamen Ihres Servers in das Feld * Host * unter * Server * ein.

Geben Sie den Benutzernamen, den Sie für Ihre SSH-Verbindung verwendet haben, in das Feld * Login * ein.

Und da es das ist, was wir in Schritt 2 installiert haben, wählen Sie "+ XFCE +" als Ihren * Sitzungstyp *.

Da wir uns schließlich mit SSH-Schlüsseln beim Server anmelden, klicken Sie auf das Ordnersymbol neben * RSA / DSA-Schlüssel für SSH-Verbindung verwenden * und navigieren Sie zu Ihrem privaten Schlüssel.

Der Rest der Standardeinstellungen sollte vorerst ausreichen. Wenn Sie sich jedoch mit der Software vertraut gemacht haben, können Sie den Client anhand Ihrer individuellen Präferenzen optimieren.

Nachdem Sie auf die Schaltfläche * OK * geklickt haben, können Sie Ihre grafische Sitzung starten, indem Sie auf das weiße Kästchen oben rechts auf dem Bildschirm klicken, das Ihren Sitzungsnamen enthält.

image: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/main-window.png [X2Go-Hauptfenster - Sitzungsliste]

In wenigen Sekunden wird Ihr Remote-Desktop angezeigt und Sie können mit ihm interagieren. Bei der ersten Anmeldung werden Sie von XFCE gefragt, ob Sie * die Standardkonfiguration * oder * ein leeres Panel * verwenden möchten. Mit der ersten Option wird ein rechteckiges Feld erstellt, das am unteren Bildschirmrand angedockt ist und einige nützliche Anwendungsverknüpfungen enthält (z. einen Dateimanager, einen Terminalemulator, einen Browser usw.). Diese Option fügt dem Desktop auch ein oberes Bedienfeld hinzu, das Dienstprogramme wie einen Anwendungsstarter, eine Uhr, ein Menü zum Herunterfahren und mehr enthält.

Wenn Sie nicht bereits mit XFCE vertraut sind, kann die Entscheidung für ein leeres Bedienfeld komplizierter sein, da Sie bei Null anfangen. Es gibt keine Taskleiste, keine Uhr und kein vorkonfiguriertes Startmenü. Es liegt an Ihnen, alles selbst zu einem leeren Bereich hinzuzufügen.

Darüber hinaus gibt es unter Windows- und Linux-basierten Betriebssystemen einige nützliche Tastenkombinationen, die Sie für eine bessere Benutzererfahrung verwenden können:

+ STRG + ALT + F + schaltet den Vollbildmodus ein und aus. Das Arbeiten im Vollbildmodus kann sich eher wie ein lokales Desktop-Erlebnis anfühlen. Außerdem werden andere Tastaturkürzel vom Remote-Betriebssystem anstelle des lokalen Betriebssystems abgerufen.

+ STRG + ALT + M + minimiert die Remote-Ansicht, auch wenn Sie sich im Vollbildmodus befinden

+ STRG + ALT + T + trennt die Sitzung, lässt aber die GUI auf dem Server laufen. Es ist nur eine schnelle Möglichkeit, die Verbindung zu trennen, ohne sich abzumelden oder Anwendungen auf dem Server zu schließen. Dasselbe passiert, wenn Sie auf die Schaltfläche zum Schließen des Fensters klicken.

Zuletzt gibt es zwei Möglichkeiten, wie Sie die Remote-Sitzung beenden können, indem Sie alle darin ausgeführten Grafikprogramme schließen. Sie können sich über das * Startmenü * von XFCE aus der Ferne abmelden oder auf die Schaltfläche klicken, die mit einem Kreis und einer kleinen Linie (z. B. einem Strom- / Standby-Symbol) in der rechten unteren Ecke des Hauptbereichs des Bildschirms markiert ist.

Die erste Methode ist sauberer, lässt aber möglicherweise Programme wie die Sitzungsverwaltungssoftware laufen. Die zweite Methode schließt alles, kann dies jedoch erzwingen, wenn ein Prozess nicht ordnungsgemäß beendet werden kann. Speichern Sie in jedem Fall Ihre Arbeit, bevor Sie fortfahren.

image: http: //assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/terminate-session.png [X2Go-Hauptfenster - Schaltfläche "Sitzung beenden"]

Zum Schluss gehen wir, obwohl dies nicht erforderlich ist, in das XFCE-Bedienfeld, navigieren zu den Energieeinstellungen und deaktivieren alle Standby-Funktionen. Wenn Sie den Desktop längere Zeit nicht verwenden, versucht XFCE, einen Standby-Modus auszulösen. Obwohl der Server normalerweise nichts unternimmt, wenn er diese Anfrage erhält, ist es besser, alle unvorhergesehenen Verhaltensweisen zu vermeiden.

Fazit

Sie verfügen jetzt über einen funktionsfähigen „Cloud-Desktop“ mit allen Vorteilen eines jederzeit online verfügbaren Computersystems, auf das von einem Remotestandort aus zugegriffen werden kann.

Um einen Schritt weiter zu gehen, können Sie Ihre Entwicklungsarbeit zentralisieren, indem Sie creating a git repository installieren einen Remote-Code-Editor wie Eclipse oder configuring a web server für Testen von Webanwendungen. Sie können Ihren Remote-Desktop auch mit a good backup scheme koppeln, um dies sicherzustellen dass Ihre Arbeitsumgebung überall verfügbar und vor Datenverlust geschützt ist.

Wenn Sie mehr erfahren möchten, besuchen Sie die offizielle Dokumentations-Website von X2Go.