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.
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.
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.
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
.
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.
Der letzte Schritt ist das Hinzufügen eines neuen Profils unter dem X2Go-Clienten:
Dieses Profil kann von nun an – nach Aufbau des SSH-Tunnels – benutzt werden.