Ubuntu 1804를 실행하는 원격 VM이 있고 VNC를 실행하고 싶습니다. 저는 X 서버가 실행되어야 하는 x11vnc를 사용하고 있습니다. 현재는 SSH를 통해 연결되어 있습니다.
VM에는 Nvidia 카드가 있으며 nvidia-xconfig를 사용하여 xorg.conf를 생성한 후 startx를 사용하여 X 세션을 시작할 수 있지만 루트로만 가능합니다. VNC를 통한 후속 연결은 루트를 통해 이루어지므로 이를 피하고 싶습니다.
xorg.conf 파일의 Device 섹션은 다음과 같습니다:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Tesla K80"
BusID "0:30:0"
EndSection
루트가 아닌 사용자로 startx를 시작하려고 하면 다음과 같은 메시지가 나타납니다.
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
누구나 startx를 할 수 있도록 /etc/X11/Xwrapper.config를 변경하면 다음과 같은 결과가 나타납니다.
Couldn't get a file descriptor referring to the console
나는 SSH를 통해 연결한다고 해서 startx를 실행해야 하는 텍스트 콘솔에 연결되었다는 의미는 아니라는 것을 읽었습니다. chvt가 실패하여 텍스트 콘솔로 변경하려고 해도 아무 것도 변경되지 않습니다.
어쨌든 SSH를 통해 X를 시작할 수 있나요?
답변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