Ich habe eine Remote-VM mit Ubuntu 1804 und möchte VNC ausführen. Ich verwende x11vnc, wofür ein laufender X-Server erforderlich ist. Derzeit bin ich über SSH verbunden.
Die VM verfügt über eine Nvidia-Karte und nachdem ich die xorg.conf mit nvidia-xconfig generiert habe, kann ich eine X-Sitzung mit startx starten, allerdings nur als Root. Jede nachfolgende Verbindung über VNC erfolgt mit Root, was ich vermeiden möchte.
Der Abschnitt „Device“ in der Datei xorg.conf sieht folgendermaßen aus:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla K80"
BusID "0:30:0"
EndSection
Beim Versuch, startx als Nicht-Root-Benutzer zu starten, erhalte ich Folgendes:
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
Wenn ich die Datei /etc/X11/Xwrapper.config so ändere, dass jeder startx verwenden kann, erhalte ich Folgendes:
Couldn't get a file descriptor referring to the console
Ich habe gelesen, dass eine Verbindung über SSH nicht bedeutet, dass man mit einer Textkonsole verbunden ist, die man zum Ausführen von startx benötigt. Der Versuch, mit chvt zu einer Textkonsole zu wechseln, schlägt fehl und ändert nichts.
Gibt es eine Möglichkeit, X über SSH zu starten?
Antwort1
Hierist eine auf basierende Lösung systemd-run
, die den Benutzer startx
glauben lässt, sie sei von einem virtuellen Terminal aus ausgeführt worden.
Antwort2
Sie können einen Anmeldemanager hinzufügen (z. B. lightdm
) und die automatische Anmeldung konfigurieren. Sie kann sogar x11vnc
zu Beginn der Benutzersitzung ausgeführt werden.
Alternativ können Sie vncserver
es als Benutzer ausführen und dann über eine SSH-Weiterleitung eine direkte Verbindung herstellen:
ssh -L5904:localhost:5905 [email protected]
vncserver :5 # only if the server has not been started
und dann können Sie auf dem Client Folgendes ausführen:
xvncviewer localhost:4