Startx como usuario no root a través de SSH

Startx como usuario no root a través de SSH

Tengo una máquina virtual remota que ejecuta Ubuntu 1804 y me gustaría ejecutar VNC. Estoy usando x11vnc, que requiere que se ejecute un servidor X. Actualmente, estoy conectado a través de SSH.

La VM tiene una tarjeta Nvidia y después de generar xorg.conf con nvidia-xconfig, puedo iniciar una sesión X usando startx, pero solo como root. Cualquier conexión posterior vía VNC es con root, lo cual quiero evitar.

La sección Dispositivo en el archivo xorg.conf se ve así:

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

Al intentar iniciar startx como usuario no root, aparece lo siguiente:

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

Si cambio /etc/X11/Xwrapper.config para permitir que cualquiera pueda iniciar, obtengo lo siguiente:

Couldn't get a file descriptor referring to the console

He estado leyendo que conectarse a través de SSH no significa que esté conectado a una consola de texto, que necesita para ejecutar startx. Intentar cambiar a una consola de texto con chvt falla no cambia nada.

¿Existe alguna forma de iniciar X a través de SSH?

Respuesta1

Aquíes una solución basada en systemd-run, hace startxcreer que se ha ejecutado desde una terminal virtual.

Respuesta2

Puede agregar un administrador de inicio de sesión (por ejemplo, lightdm) y configurar el inicio de sesión automático. Incluso ejecutarse x11vncal inicio de la sesión del usuario.

Alternativamente, puedes ejecutarlo vncservercomo usuario y luego conectarte directamente a él, mediante reenvío ssh:

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

y luego, en el cliente puedes ejecutar:

xvncviewer localhost:4

información relacionada