로그인 화면에서 VNC를 통해 우분투 컴퓨터에 액세스하는 방법은 무엇입니까?


17

VNC를 통해 원격으로 Ubuntu 컴퓨터에 액세스하고 싶습니다. 그러나 사용자가 로그인 한 경우에만 Ubuntu 시스템에 액세스 할 수 있습니다. 로그인 화면 자체에서 VNC를 통해 Ubuntu 시스템에 액세스하려고합니다. 로그인 화면에서 모든 Windows 시스템에 액세스 할 수 있습니다. 그러나 로그인 화면에서 Ubuntu 시스템에 액세스 할 수 없었습니다. 방법이 있지만 세부 사항을 알지 못합니다. 누군가이 문제에 대한 해결책을 줄 수 있습니까?


다른 시스템이 동일한 LAN에 있으면 VNC 대신 XDMCP를 사용하는 것이 가능합니다. 동일한 LAN에 있지 않으면 네트워크를 통한 가속되지 않은 X가 너무 느려질 수 있습니다.
Robin Green

답변:


10

가장 좋은 방법은 xrdp 를 설치하는 것 xrdp 설치입니다. 설치 후 RDP 클라이언트를 사용하여 컴퓨터에 연결할 수 있습니다. 그러면 로그인 화면에서와 같이 자격 증명을 묻는 메시지가 나타납니다.


xrdp를 설치했지만 여전히 로그인 화면에서 우분투 컴퓨터에 액세스 할 수 없습니다.
karthick87

@karthick : VNC 또는 RDP 클라이언트를 사용하여 컴퓨터에 연결하고 있습니까?
Nathan Osman

내 컴퓨터에서 RDP 클라이언트를 찾을 수 없습니다. 어디에 위치합니까?
karthick87

@ karthick : Ubuntu를 클라이언트로 사용하고 있습니까? 그렇다면 사용할 프로그램을 "터미널 서버 클라이언트"라고합니다. Windows에서는 "원격 데스크톱"IIRC라고합니다.
Nathan Osman

그래 고마워 터미널 서버 클라이언트 용 실행기를 만들 수 있습니까?
karthick87

5

전반적 으로을 추천x11vnc 합니다.

TL; DR

apt-get -y install x11vnc
x11vnc -storepasswd

비밀번호를 입력하면 기본적으로 비밀번호 ~/.vnc/passwd 암호화 형식 으로 저장됩니다 . 키가 알려져 있기 때문에 암호를 해독 할 수 있습니다. .. 파일 시스템 권한으로 보호)

chmod 600 ~/.vnc/passwd

도우미 스크립트를 로컬로 저장하십시오.

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

VNC 클라이언트 호스트에서 :

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

또는 VNC 서버 호스트에서 다음을 실행하십시오.

~/bin/start_x11vnc.sh

터미널을 통해 (또는과 데몬으로 시작 -forever있는 init.d 서비스 , 신출내기 서비스 , systemd 단위 그러나, 또는 당신이 원하는)

이제 클라이언트 호스트에서 선택한 VNC 클라이언트를 실행하고을 가리킨 다음 127.0.0.1:5900위에 저장된 비밀번호로 로그인하십시오.

X11 "매직 쿠키"사용

대부분의 X 디스플레이 관리자 (예 : GDM , XDM , KDM )는 초기 X11 서버를 시작 하고 MIT Magic Cookie를 사용하여 인증합니다 . 디스플레이 관리자에 따라 매직 쿠키는 다양한 위치 중 하나에 있습니다 .

이 스크립트로 마술 쿠키를 찾아 우분투 GDM 로그인 화면 * NOTE1 에서 VNC 세션을 열면 행운을 얻었습니다 .

#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"

if [ -x /usr/bin/x11vnc ]; then
     [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
     [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
         [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
         [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
         [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
    EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]; then

        echo "\n*********************************************************************"
        echo "*** Could not start x11vnc!  Trying again with gdm MAGIC_COOKIE! ***"
        echo "*********************************************************************\n"

        # Old GDM location for Ubuntu <= 17.10
        MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm`

        # New GDM location for Ubuntu >= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l`
        if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
            # Find the current user's session
            MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'`
            X11VNC_DISPLAY=":1"
        else
            # Find the GDM user's session (or whichever shows up first in ps list)
            # This should pick up the original gdm session which grabs :0
            # If you login after gdm login screen, your Xorg server may end up on another display!
            # Workaround for now is to restart x11vnc on that display number
            [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1`
        fi
        # Old lightdm location for Ubuntu <= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1`
        #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
        [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
        [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
    fi
fi

로그인 화면을 start_x11vnc.sh통해 gdm로그인 하기 전에도 SSH를 통해 언제든지이 스크립트를 시작할 수 있습니다 . SSH 터널x11vnc 을 통해 연결할 수 있는 서버를 시작합니다 . 에서 호스트 항목을 사용 하거나 추가 하십시오 .ssh -L 5900:127.0.0.1:5900LocalForward 5900 127.0.0.1:5900~/.ssh/config

NOTE1 : Ubuntu> = 17.10과 같은 일부 새로운 배포판에서는 GDM 로그인 X 세션 디스플레이가 로그인 한 사용자의 X 세션 디스플레이와 완전히 분리되어 있습니다. 따라서 먼저 GDM X 세션에 연결하고 로그인 한 다음 새로 시작한 X 세션의 연결을 끊었다가 다시 연결해야합니다. 그들이 지금 이런 식으로하는 이유는 미스터리이지만이 스크립트의 구 버전을 깨뜨 렸습니다.


작동하지 않습니다. VNC 클라이언트 연결 후 즉시 종료
Dims

@Dims 다음 명령을 사용하십시오 :vncviewer <remote_ip>
Gokul NC

Ubuntu의 새 버전에서 스크립트가 깨졌습니다 ... 다시 작동하도록 해킹으로 업데이트했습니다. 이제 gdm 표시 세션이 로그인 한 세션과 분리 된 것 같습니다. 따라서 Ubuntu에서이 스크립트를 사용하는 경우 먼저 GDM 로그인 화면으로 이동 한 다음 로그인하면이 X 세션 표시가 공백이됩니다. 이제 첫 x11vnc 프로세스를 중지하고 스크립트를 다시 실행하여 별도로 로그인 된 X 세션 및 디스플레이에 다시 연결해야합니다.
TrinitronX

2

VNC ssh 원격 연결을 통한 GDM 로그인을 활성화하려면 X11vnc로 시도하십시오. 이 답변 도 참조하십시오 .


0

RDP를 사용하지 않으려는 경우 VNC를 사용하여 수행하는 방법은 다음과 같습니다.

  1. X11VNC 서버 설치 : sudo apt-get install x11vnc(또는 Ubuntu Software Center-> X11VNC Server를 통해)
  2. 비밀번호를 설정하십시오.

    sudo mkdir /etc/x11vnc
    sudo x11vnc -storepasswd /etc/x11vnc/passwd
    

    y비밀번호를 저장하도록 선택하십시오 .

  3. 에서 빈 파일 만들기 /etc/init라는를 x11vnc.conf:

    sudo -H gedit /etc/init/x11vnc.conf
    
  4. 이것을 파일에 붙여 넣으십시오.

    start on login-session-start
    
    exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log
    
  5. 저장하고 닫습니다

  6. 우분투 다시 시작

그게 다야! 이제 로그인하기 전에도 VNC 클라이언트와 연결할 수 있습니다.


이 작동하지 않았다.
메이스

@mace 흥미롭게도, 우분투 버전에 의존했을 수도 있습니다. 불행히도, 나는이 절차를 수행했을 때 내 우분투 버전이 무엇인지 기억하지 못합니다.
Didier A.

0

다시 : X11vnc와 함께 시도

x11vnc는 2011 년 9 월 이후 업데이트되지 않았습니다 !!!! 알려진 버그가 있으며 세션의 연결을 끊을 때 팝업 대화 상자 (예 : 모든 창에서 '파일'메뉴 클릭)와 같은 경우 x11vnc의 스택 스매시 종료를 트리거하는 버그가 발생합니다.

라즈베리 파이는 : 0에서 데스크탑 관리자 세션에 연결할 수 있습니다. 왜 우분투에서 이런 문제가 발생합니까?!?! 현대의 운영 체제에서이 작업을 수행하기 위해 고아 인 7 년 된 프로그램에 의존해야하는 이유는 무엇입니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.