Kurzanleitungen/Howtos

Anmeldebildschirm mit x2go und XDMCP tunneln

23.03.2020

In vielen Fällen reicht es, wenn man sich eine entfernte Desktopsitzung per X2Go auf den eigenen Rechner holt und das Übergeben der Zugangsdaten (mit Benutzername/Paßwort oder per SSH-Schlüssel) an X2Go delegiert. In speziellen Szenarien kann es aber erforderlich sein, den kompletten Loginvorgang so nachzustellen, wie ihn ein entfernter Benutzer, der direkt vor dem Gerät sitzt, auch sehen und durchführen würde.
Hier kommt das XDMCP-Protokoll ins Spiel, das die Kommunikation zwischen XServer und Displaymanager regelt. XDMCP ist netzwerkfähig und kann effizient über X2Go "getunnelt" werden.

Diese Kurzanleitung behandelt die komplette Einrichtung vom Aufbau des SSH-Tunnels bis zum X2Go-Client.

Lokaler Rechner: Hostnamen für den entfernten Desktoprechner

Zuerst wird für den entfernten Desktoprechner auf dem lokalen Rechner, auf dem der X2Go-Client laufen soll, ein extra Hostname angelegt, der auf das Loopback-Netzwerk weist. Dies ist wichtig, damit der X2Go-Client mehrere herübergetunnelte Maschinen – anhand unterschiedlicher Hostnamen – unterscheiden kann.

Hierzu trägt man in der /etc/hosts folgendes ein:

127.0.2.1 remotelokal
Der Hostname ist in diesem Beispiel "remotelokal" und die zugewiesene IP "127.0.2.1". Die Hostnamen sind quasi frei wähbar, die IP-Adressen liegen im Bereich 127.0.0.1 bis 127.255.255.254.

Lokaler Rechner: SSH-Tunnel aufbauen

Wir gehen davon aus, daß der entfernte Desktoprechner (interner Hostname "entfernterDesktop") nicht direkt, aber mit dem Umweg über einen Rechner ("entferntesGateway"), über das Internet erreichbar ist. Der Hostname "entferntesGateway" ist vom lokalen Rechner auflösbar.

Die Zeile

ssh -o ServerAliveInterval=100 -f -N root@entferntesGateway -L 10022:entfernterDesktop:22
baut einen SSH-Tunnel auf (und sorgt dafür, das dieser offen bleibt), der den SSH-Port 22 vom entfernten Desktoprechner auf den lokalen Rechner-Port 10022 weiterleitet.

Enfernter Rechner: X2Go-Server installieren

Nun wird auf dem entfernten Desktopsystem der X2Go-Server installiert. Folgende Zeile wird z.B. verwendet, um dies auf einem Ubuntu 18.04 vorzunehmen:

echo 'deb [trusted=yes] http://ppa.launchpad.net/x2go/stable/ubuntu bionic main' > /etc/apt/sources.list.d/x2go.list
apt-get update
apt-get install x2goserver
Wer es sicherer mag, läßt
deb [trusted=yes]
weg und importiert stattdessen den GPG-Schlüssel des X2Go-Projektes mit
apt-key
.

Enfernter Rechner: XDMCP-Server in lightdm aktivieren

Standardmäßig ist der XDMCP-Server unter LightDM (und wahrscheinlich den meisten anderen Displaymanagern) deaktiviert. Zum Aktivieren fügt man in der /etc/lightdm/lightdm.conf die beiden Zeilen

[XDMCPServer]
enabled=true
hinzu und startet LightDM mittels
/etc/init.d/lightdm restart
neu.

Lokaler Rechner: X2Go-Client einrichten

Der letzte Schritt ist das Hinzufügen eines neuen Profils unter dem X2Go-Clienten:

X2Go-Client-Konfiguration

  • Host: Der Hostname auf das Loopback-Netzwerk
  • Login: Ein Benutzername, der auf dem entfernten Desktoprechner existiert und über den man sich per SSH mittels Paßwort oder SSH-Schlüssel verbinden kann
  • SSH-Port: Die lokale Portnummer des weitergeleiteten SSH-Ports
  • RSA-/DSA-Schlüssel verwenden (ssh): Hier wird die Datei des eigenen privaten SSH-Schlüssels angegeben, wenn auf dem entfernten Desktoprechner der dazugehörige öffentliche Teil beim Benutzer "user" hinterlegt ist.
  • Sitzungsart: "XDMCP" auswählen, damit der Anmeldebildschirm sichtbar wird.
  • XDMCP-Server: "localhost", da der Port per SSH auf lokalen Rechner weitergeleitet wurde

Dieses Profil kann von nun an – nach Aufbau des SSH-Tunnels – benutzt werden.

Achtung! Achtung! Die folgenden Anweisungen richten sich ausschließlich an fachkundige Personen. Bei jedem Schritt kann es zum kompletten Datenverlust kommen. Alle Angaben ohne Gewähr! Die Anweisungen, Skripte, etc. sind ausschließlich für Lernzwecke auf Lernsystemen und nicht für Produktivumgebungen bestimmt!