Startx como usuário não root via SSH

Startx como usuário não root via SSH

Tenho uma VM remota executando o Ubuntu 1804 e gostaria de executar o VNC. Estou usando o x11vnc, que requer a execução de um servidor X. Atualmente, estou conectado através de SSH.

A VM possui uma placa Nvidia, e após gerar o xorg.conf com nvidia-xconfig, posso iniciar uma sessão X usando startx, mas apenas como root. Qualquer conexão subsequente via VNC é com root, o que quero evitar.

A seção Dispositivo no arquivo xorg.conf é semelhante a esta:

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

Ao tentar iniciar o startx como um usuário não root, recebo o seguinte:

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

Se eu alterar o /etc/X11/Xwrapper.config para permitir que qualquer pessoa inicie o x, recebo o seguinte:

Couldn't get a file descriptor referring to the console

Tenho lido que conectar via SSH não significa que você está conectado a um console de texto, necessário para executar o startx. Tentar mudar para um console de texto com chvt falha não muda nada.

Existe alguma maneira de iniciar o X via SSH?

Responder1

Aquié uma solução baseada em systemd-run, que faz startxpensar que foi executada a partir de um terminal virtual.

Responder2

Você pode adicionar um gerenciador de login (digamos, lightdm) e configurar o login automático. Execute até mesmo x11vncno início da sessão do usuário.

Alternativamente, você pode executar vncservercomo usuário e conectar-se diretamente a ele, via encaminhamento ssh:

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

e então, no cliente você pode executar:

xvncviewer localhost:4

informação relacionada