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 startx
pensar 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 x11vnc
no início da sessão do usuário.
Alternativamente, você pode executar vncserver
como 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