Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 위 멀티 세션 설정 1.에서 정한 경로에서 startwm.sh 파일 생성 후 다음 내용 추가

    Code Block
    $ vi /etc/xrdp/startwm-bash.sh
    (sleep 3; cp ${HOME}/.vnc/passwd ${HOME}/.vnc/sesman_passwd-${USER}@${HOSTNAME}${DISPLAY/.0/})&
    /etc/X11/xinit/Xsession

    ※ 설명

    • 재접속 시 vnc 클라이언트는 xrdp 패스워드를 인식하지 못해 재접속이 안됩니다. vnc 클라이언트가 이해할 수 있는 암호 파일로 xrdp 패스워드 파일을 대체합니다.
    • 지연 시간을 두는 이유는 xrdp의 세션 매니저(sesman)이 Xsession을 실행하고 해당 세션을 보여 줄 때 sesman_passwd-user@host:display 암호 파일에 접근하는데 이 파일이 미리 바뀌어 있으면 해당 세션의 화면을 가져오지 못하기 때문이니다. Xvnc 세션만 실행하고 해당 세션에 바로 접근이 안됩니다.
      Xvnc 세션 실행(사용자 암호 필요) → Xvnc 세션 접속(사용자 암호 필요) → xrdp 세션 암호 대체(vnc 암호) → vnc viewer로 재 접속(vnc 암호 사용)

  2. xrdp를 사용할 사용자마다 vncpasswd 명령을 사용하여 위 1.의 $HOME/.vnc/passwd 파일을 생성

    Code Block
    $ vncpasswd
    Password: 
    Verify: 
    Would you like to enter a view-only password (y/n)? n 
    A view-only password is not used

    ※ 참고

    • 암호는 6자 이상이어야 하며 처음 8자까지만 사용됩니다.
    • -f 파라미터를 사용하여 암호를 6자 보다 짧게 작성할 수 있습니다.
      $ vncpasswd -f >~/.vnc/passwd


  3. Xorg 서버에 대한 멀티 세션 생성 및 재접속을 위해서 다음 과정을 추가로 진행합니다.
    1. x11vnc 설치 및 설정

      Code Block
      $ sudo yum install x11vnc


    2. x11vnc가 /etc/xrdp/startwm-bash.sh에서 자동 실행되도록 설정합니다.

      Code Block
      $ sudo vi /etc/xrdp/startwm-bash.sh
      #!/usr/bin/bash
      x11vnc -repeat -display $DISPLAY -shared -forever -rfbauth $HOME/.vnc/passwd -rfbport 59`printf %02d $(expr match "$DISPLAY" '.*:\([0-9]*\).*')`&
      ...  

      x11vnc 설명:

      1. x11vnc는 Xorg 서버에 vnc로 접속할 수 있도록 합니다.

      2. 이 명령의 옵션은 Xorg 디스플레이 번호와 vnc 포트의 값을 같게 하도록 하는 내용이 포함되어 있습니다.
      3. -repeat: 키가 연속적으로 입력이 될 수 있도록 하는 옵션입니다.

      4. -shared: 화면 공유 옵션입니다.

      5. -forever: vnc 세션을 닫아도 다음 연결을 위해 대기하도록 하는 옵션입니다.

      6. -rfbauth: vnc 세션의 접속 암호로 사용할 파일을 지정합니다.

      7. -rfbport: vnc 접속을 위해 대기하기 위한 포트입니다. 위 명령은 $DISPLAY의 값과 연동하도록 하였습니다.

...