Startx как не-root пользователь через SSH

Startx как не-root пользователь через SSH

У меня есть удаленная виртуальная машина под управлением Ubuntu 1804, и я хотел бы запустить VNC. Я использую x11vnc, который требует запуска X-сервера. В настоящее время я подключен через SSH.

В виртуальной машине установлена ​​карта Nvidia, и после генерации xorg.conf с помощью nvidia-xconfig я могу запустить сеанс X с помощью startx, но только как root. Любое последующее подключение через VNC будет с root, чего я хочу избежать.

Раздел Device в файле xorg.conf выглядит следующим образом:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla K80"
    BusID          "0:30:0"
EndSection

При попытке запустить startx как пользователь без прав root я получаю следующее:

/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server

Если я изменю /etc/X11/Xwrapper.config, чтобы разрешить любому пользователю запускать x, я получу следующее:

Couldn't get a file descriptor referring to the console

Я читал, что подключение через SSH не означает, что вы подключены к текстовой консоли, которая нужна для запуска startx. Попытка перейти на текстовую консоль с помощью chvt терпит неудачу и ничего не меняет.

Можно ли как-то запустить X через SSH?

решение1

Здесьэто решение, основанное на systemd-run, оно обманывает, startxзаставляя думать, что оно запущено с виртуального терминала.

решение2

Вы можете добавить менеджер входа (например, lightdm) и настроить автовход. Даже запустить x11vncв начале сеанса пользователя.

В качестве альтернативы вы можете запустить его vncserverкак пользователь, а затем подключиться к нему напрямую через SSH-переадресацию:

ssh -L5904:localhost:5905 [email protected]
vncserver :5 # only if the server has not been started

и затем на клиенте вы можете запустить:

xvncviewer localhost:4

Связанный контент