SSH를 통해 루트가 아닌 사용자로 x를 시작합니다.

SSH를 통해 루트가 아닌 사용자로 x를 시작합니다.

Ubuntu 1804를 실행하는 원격 VM이 있고 VNC를 실행하고 싶습니다. 저는 X 서버를 실행해야 하는 x11vnc를 사용하고 있습니다. 현재는 SSH를 통해 연결하고 있습니다.

VM에는 Nvidia 카드가 있으며 nvidia-xconfig를 사용하여 xorg.conf를 생성한 후 startx를 사용하여 X 세션을 시작할 수 있지만 루트로만 가능합니다. VNC를 통한 후속 연결은 루트를 사용하여 이루어지므로 이를 피하고 싶습니다.

xorg.conf 파일의 장치 섹션은 다음과 같습니다:

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

누구나 x를 시작할 수 있도록 /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

관련 정보