Remote Desktop: Gnome-Remote-Desktop ersetzen

Der Ursprung dieser Artikelserie war der Versuch, per Remote-Desktop auf mein TerraPad zuzugreifen, so daß ich in die laufende Desktopsession eingreifen kann. Da es sich um ein Touchgerät handelt läuft der Gnome Desktop und der bietet dafür genau die richtige Funktion, direkt integriert, per Einstellungen aktivierbar, super komfortabel aber leider völlig disfunktional und somit komplett unbrauchbar 🙁

Remote Desktop: Gnome-Remote-Desktop ersetzen

Falls Ihr den auch ausprobiert habt und es nicht ging, gibt es dafür zwei mögliche Gründe: Entweder Ihr habt eine Auto-Login-Desktopsession, da es da keine Logindaten gibt, kann man die im Remotezugriff nicht abfragen laut Fedora Gnome Maintainer, oder Ihr bekommt trotz richtiger Logindaten keine Authentifizierung hin, dann habt Ihr das gleiche Problem wie ich.

Netter Versuch Gnome, aber…

Das geht alles viel besser als mit Eurer Bastellösung die irgendeine FreeRDP Liblösung benutzt, die leider nicht richtig funktioniert. Ironischerweise kann der Shadow-CLI Server von FreeRDP die ganze Sache sofort richtig, man muß ihn halt nur starten 🙂 Dabei löst er nämlich gleich beide Probleme, denn er macht den Auth gegen die Passwd und nicht in irgendeiner komischen Gnomeenklave.

Damit ist es dann auch egal, ob man einen Autologin hatte oder nicht. Als Sicherheitsmaßnahme kann man nur als der laufende User einloggen, also der, dem der Desktop gehört. Alles andere wäre auch unschön unsicher.

Und so geht es

wir brauchen:

sudo dnf install freerdp-server

und dann bauen wir uns einen kleinen Systemd.Service und können das starten. Dazu legen die Datei an ~/.config/systemd/user/shadow-remote-desktop.service :

[Unit]
Description=Shadow RDP Service
DefaultDependencies=no

[Service]
ExecStart=/usr/bin/freerdp-shadow-cli +auth
Restart=always
WorkingDirectory=%h
Environment=DISPLAY=:0
Type=simple
TimeoutStartSec=10

[Install]
WantedBy=default.target

dann müssen wir Gnome aufhalten, so Ihr denn Gnome einsetzt. Bei Cinnamon oder anderen Desktops ohne integrierte Lösung brauch Ihr das natürlich nicht machen 😉

systemctl –user stop gnome-remote-desktop.service
systemctl –user disable gnome-remote-desktop.service
systemctl –user mask gnome-remote-desktop.service

jetzt noch starten:

systemctl –user start shadow-remote-desktop.service

und das war es. Fertig. Keine dummen Fehlermeldungen mehr, läuft direkt mit Remmina und XFreeRDP als Klienten, einfach perfekt.

Ihr könnt den Dienst übrigens auch allen Usern auf dem System einrichten, dann braucht Ihr im Service Abschnitt noch den Eintrag: „User=%i“ und die Servicedatei muß systemweit installiert sein, z.B. hier /usr/lib/systemd/user/ .

Kleine Erklärung zur Datei und was Ihr ggf. ändern müßt

+auth“ damit wird die Authentifizierung erzwungen. Ohne die Anweisung könnte jeder in den Desktop rein, daß wollt Ihr nicht mal zu hause im LAN haben.

DISPLAY=:0“ ist das Defaultdisplay Eures Desktops. BEI MIR ist das aber :1 , keine Ahnung wieso. Wenn es also bei Euch nicht auf Anhieb startet, dann schaut doch mal ins Terminal rein, ob Eure DISPLAY Variable auch wirklich :0 ist. Einfach „echo $DISPLAY“ eingehen, dann wisst Ihr es.

Falls Ihr Wayland benutzt

Kann ich Euch leider nicht garantieren, daß es geht. Das müßt Ihr ausprobieren.

Einführung:

Remote Desktop: Einführung

Teil 1:

Remote Desktop: eigene Desktopsession mit XRDP