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 startx
creer 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 x11vnc
al inicio de la sesión del usuario.
Alternativamente, puedes ejecutarlo vncserver
como 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