SSH를 통해 원격 데스크톱 공유를 설정하는 방법은 무엇입니까?


답변:


51

방법 1 :

이것은 vino vnc server & remmina를 사용하여 달성 할 수 있습니다 (둘 다 ubuntu와 함께 기본값으로 제공됩니다 sudo apt-get install remmina. 그런 다음 터미널 프롬프트의 로컬 컴퓨터에서 다음 명령을 실행하십시오.

  1. ssh -Y gman@remote. 신뢰할 수있는 X11 전달을 사용하십시오. 그렇지 않으면 작동하지 않습니다

  2. vino-preferences. vino 환경 설정이 열립니다.

    비엔나 선호

  3. 또한를 클릭하십시오 configure network automatically to accept connection. 그러나 base64로 인코딩 된 비밀번호는 입력하지 마십시오 . 그런 다음 닫기를 클릭하십시오. 그런 다음 다음을 실행하십시오.

    sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    

    vino 서버가 시작됩니다.

  4. 서버에서 로그 아웃 :

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. 그런 다음 remmina를 엽니 다 . vnc프로토콜에서 선택하십시오 .

    basic탭 아래에서 서버 주소를 server필드에 입력하십시오.

    ssh 탭에서을 클릭하십시오 enable ssh tunnel. 아래 ssh authentication에서 password또는 일 수 있습니다 public key.

    레미 나 선호

    저장을 클릭하십시오. 그런 다음 connection-name (그림과 같이 홈 데스크탑)을 두 번 클릭하여 원격 데스크톱 탐색을 시작하십시오.


방법 2 :

x11vnc간단한 VNC 서버이며 Gnome 설정이나 500 개의 방화벽을 망칠 필요가 없습니다. x11vnc꼭두각시 나 대량 제어에 사용하는 모든 컴퓨터에 설치 하면됩니다.

그런 다음 로컬 컴퓨터에서 다음을 실행하십시오.

ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

분명히 user@host원격 컴퓨터의 사용자 이름과 호스트 이름 / IP를 교환 합니다.

그런 다음 선택한 VNC 클라이언트를 사용하여에 연결하십시오 localhost:5900. SSH 명령은 원격 컴퓨터에서 vnc 서버를 시작한 다음 SSH를 통해 해당 포트를 터널 백합니다. 이미 SSH를 사용할 수있는 한 포트를 열 필요가 없습니다.

컴퓨터에 재미있는 디스플레이 설정이 -display :0있는 경우 SSH 명령에서 세그먼트 를 벗어나는 것이 좋습니다 . x11vnc그런 다음 자동으로 올바른 디스플레이를 찾습니다.


출처 : 아스 쿠분투


느린 ssh 연결로 vncviewer를 사용하는 경우 명령은 vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(데비안 / 우분투에서 뷰어는 tightvnc에서) 또는 vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(Red Hat / Fedora에서 뷰어는 tigervnc에서) 다음과 같아야합니다. 0에서 9 사이에서 9가 가장 좋지만 빠른 연결이 필요합니다.
erik

@erik vncviewer연결 속도가 느린 경우 사용 방법을 설명해 주셔서 감사 합니다. 나는 개인적으로 아마도 (즉 , 나는 생각 QualityLevel=4 or 5하기 때문에 ) 나에게 너무 둔하기 때문에 설정 할 것이다 . 0 qualitylevel256 colors
Khurshid Alam

1
"방법 2"는 특별한 영구 설정없이 원격으로 물리적 디스플레이에 빠르게 액세스 할 수있는 완벽한 제품입니다. 명령을 실행할 때 오류 메시지에 설명 된대로 -auth 매개 변수를 추가해야했지만 완벽하게 작동합니다. 감사!
Pierre

@gerky 방법 3은 NoMachine이 될 것이며, 현재 가장 빠르고 무료입니다 (오픈 소스는 아니지만). Android에서도 작동합니다.
Aquarius Power

1
방법 2의 경우 -auth guess루트 로 사용 하고 실행해야했습니다. 매우 도움이되었습니다. 감사합니다!
밥 칼슨

9

솔루션 개요

OpenSSH Server호스트 시스템에 이미 설정되어 있다고 가정하면 먼저 호스트 시스템에서 데스크탑 제어를 활성화해야합니다. 호스트 컴퓨터에서 로컬로 데스크톱 제어를 먼저 활성화 할 수 있으면 1a로 이동하십시오. 호스트 시스템에서 원격 제어를 먼저 활성화해야하는 경우 1b로 이동하십시오.

다음으로 SSH 터널을 통해 호스트 시스템에 연결하고 SSH 터널을 통해 호스트 시스템의 데스크탑을보고 제어하기 위해 클라이언트 시스템에 원격 데스크탑 클라이언트 프로파일을 작성하십시오.

1a. 호스트 시스템의 로컬 원격 제어 활성화

호스트 시스템에서 다음을 수행하십시오.

vino-preferences
  • vino-preferences 또한 대시 아래에 Desktop Sharing

여기에 이미지 설명을 입력하십시오

  1. 진드기 Allow other users to view your desktop
  2. 진드기 Allow other users to control your desktop
  3. 진드기 Require the user to enter this password
  4. 추측하기 어려운 암호를 입력하십시오
  5. 닫기

1b. 원격으로 호스트 시스템의 원격 제어 활성화

클라이언트 시스템에서 다음을 수행 123.123.12.3하여 호스트 시스템의 IP 주소로 바꾸 십시오.

ssh -Y 123.123.12.3
  • -Y, 신뢰할 수있는 X11 전달을 활성화합니다. 신뢰할 수있는 X11 전달에는 X11 SECURITY 확장 컨트롤이 적용되지 않습니다.

vino-preferences
  • vino-preferences 또한 대시 아래에 Desktop Sharing

여기에 이미지 설명을 입력하십시오

  1. 진드기 Allow other users to view your desktop
  2. 진드기 Allow other users to control your desktop
  3. 진드기 Require the user to enter this password
  4. 추측하기 어려운 암호를 입력하십시오
  5. 닫기

클라이언트 컴퓨터에서 원격 데스크톱 클라이언트 프로파일 생성

클라이언트 시스템에서 다음을 수행하십시오.

remmina
  • 아래 대시에서 remmina Remmina Remote Desktop Client

Ctrl+ N또는 연결> 새로 만들기

여기에 이미지 설명을 입력하십시오

  1. IP 주소 [123.123.12.3]에 입력하십시오 Server
  2. SSH탭으로 전환

여기에 이미지 설명을 입력하십시오

  1. 진드기 Enable SSH Tunnel
  2. 데스크탑 클라이언트를 비표준 SSH 포트로 연결
  3. 당신 SSH Authentication <username>과 모드를 설정
  4. 잇다

호스트 머신보기 및 제어

클라이언트 시스템에서 <username>의 비밀번호를 요청하면 비밀번호를 입력하여 SSH 터널을 작성하십시오. VNC 비밀번호를 묻는 메시지가 표시되면 이전에 호스트 시스템에 입력 한 비밀번호 문구를 입력하십시오.

이 단계에서 성공하면 이제 SSH 터널을 통해 클라이언트 시스템에서 호스트 시스템의 데스크탑을보고 제어해야합니다.


이것은 매우 포괄적 인 것처럼 보이지만 호스트에서 사용자 정의 포트 12345는 어디에 정의되어 있습니까?
John T

설명 된 것처럼 원격 클라이언트를 사용하기 전에 ssh -L 12345 : localhost : 5900 user @ server_ip와 같은 클라이언트에서 ssh 명령을 실행해야한다고 생각합니다.
John T

3

다음 스크립트를 사용하여 원격 ssh 연결에서 새로운 Ubuntu 16.04 설치를 설정할 수있었습니다.

#! / bin / bash
내보내기 DISPLAY = : 0
-e -p "VNC 비밀번호 :"-i "ubuntu"비밀번호 읽기
dconf 쓰기 / org / gnome / desktop / remote-access / enabled true
dconf 쓰기 / org / gnome / desktop / remote-access / prompt-enabled false
dconf 쓰기 / org / gnome / desktop / remote-access / authentication-methods "[ 'vnc']"
dconf 쓰기 / org / gnome / desktop / remote-access / require-encryption false
dconf 쓰기 / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \'\"
dconf 덤프 / org / gnome / desktop / remote-access /
sudo 서비스 lightdm 재시작

인용 부호는 모든 문자열 설정에 중요합니다 (따옴표 안에 단일 눈금). dconf를 쓰려면 XWindows에 액세스해야하므로 내보내기 DISPLAY 파트가 필요합니다. 이 후에도 VNC에 연결하려면 실제 Ubuntu 시스템의 데스크톱에 로그인해야한다고 생각합니다. dump 명령은 모든 설정이 보류되었음을 확인하기 위해 존재하므로 실제로는 필요하지 않습니다.

선택적으로 디스플레이를 항상 유지하려면 다음을 수행하십시오.

dconf 쓰기 / org / gnome / desktop / screensaver / lock-enabled false
dconf 쓰기 / org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false
dconf 쓰기 / org / gnome / desktop / session / idle-delay "uint32 0"

2
  1. ssh를 사용하여 vnc 세션을 시작할 수 있습니다
  2. XnestX11 forwording과 함께 사용 하면 세션을 원격으로 시작하고 현재 컴퓨터로 전달할 수 있습니다. (저는 때때로 파이와 함께이 작업을 수행합니다) 맨 페이지

나는 Xnest그렇게 사용 한다 :

  • Xnest :1 -ac &
  • 그때 DISPLAY=:1 . /etc/X11/Xsession

0

X를 전달하지 않고 Vino 서버를 원격으로 시작하는 방법 (명령 줄 전용)

데스크탑과 포워드 포트 5900을 로컬 호스트의 동일한 포트에 공유 할 사용자로 원격 컴퓨터에 로그온하십시오. PuTTY를 사용하면 연결 / SSH / Tunnels에서 리디렉션이 설정됩니다. 명령 행에서 다음을 사용하십시오.

 ssh -L 5900:localhost:5900 user@remote-computer

설치 vino-server가 아직 설치되지 않은 경우. 예를 들면 다음과 같습니다.

sudo apt install vino

데스크톱 공유를 활성화합니다 (첫 번째 및 두 번째 줄의 표시 번호와 일치) :

echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

VNC 뷰어를 시작 localhost하고 VNC 서버 주소에 연결 하십시오.


다음을 얻었습니다. 이 모든 것이 이미 GUI 콘솔에 로그인했다고 가정합니까? No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
algal

0

@Khurshid Alam 답변을 바탕으로 다음 스 니펫을 제시합니다.

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • 상호 작용이 필요없는 명령입니다.

  • 포트 포워딩으로 SSH 터널을 생성하고 x11vnc합리적으로 안전한 방식으로 시작한 다음 VNC 뷰어를 시작 및 연결합니다.

  • 대상 호스트에는 x11vnc가 필요하지만 추가 구성은 필요하지 않습니다.

  • PC에 vinagre가 필요하지만 다른 VNC 뷰어를 위해 사소하게 변경할 수 있습니다

0

서버 PC에서.

  • 터미널에서 'vino-preferences'또는 대시를 사용하여 'Desktop Sharing'을 엽니 다.

빈 선호도

클라이언트 PC에서 (서버 UI를 제어하려는 위치에서)

  • 아래 이미지에 표시된대로 설정을 유지하십시오 (사용자 이름 및 IP 위치 변경).

* 기본 * 탭 * 고급 * 탭 * SSH * 탭

함정.

  • SSH를 사용하여 원격 PC에서 서버의 vino 환경 설정을 설정하려고 시도했지만 변경되었지만 연결이 발생하지 않았습니다. 서버 시스템에서 직접 (원격이 아닌)해야했습니다. 나는이 행동의 이유를 모른다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.