타사 도구 없이 SSH를 통해 전체 데스크톱을 전달하세요.

타사 도구 없이 SSH를 통해 전체 데스크톱을 전달하세요.

뭔가 문제가 있어서 다음에 대한 좋은 정보를 찾을 수 없었습니다.

당신은 어떻게 지내세요?또는SSH( )를 통해 전체 데스크톱을 전달할 수 없는 이유는 무엇입니까 ssh -X?

나는 단일 창을 전달하는 데 매우 익숙합니다 ssh -X. 하지만 가끔은 내 Linux 노트북을 다른 Linux 시스템의 멍청한 터미널로 사용하고 싶습니다.

나는 항상 내 노트북에서 데스크톱 환경을 종료한 다음 명령줄에서 다른 컴퓨터로 SSH를 통해 연결하고 내 노트북으로 전달된 데스크톱 환경을 시작할 수 있어야 한다고 생각했습니다.

온라인 검색을 하면 VNC 및 Xephyr와 같은 다양한 타사 도구나 단일 창 SSH 명령 및 구성이 나타납니다. 그러나 그것은 내가 찾고 있는 것이 아닙니다. 이 작업을 수행하는 방법이나 이것이 불가능한 이유를 이해하기 위해 몇 가지 해부학적 구조(xwindows?, wayland?, gdm?)를 이해하고 싶습니다.


노트:

  1. Xephyr는 창에서 원격 데스크톱을 실행하려고 하기 때문에 내가 찾고 있는 것이 아닙니다.
  2. VNC는 여러 가지 이유로 내가 찾고 있는 것이 아닙니다. 특히 X11 전달이 아니라 비트맵 전달이기 때문입니다.

답변1

어떻게할 수 있나요?

저는 Xmodulo 사이트 (현재 일시 중단됨) 에서 다음 방법을 사용하여 Ubuntu 시스템에서 전체 Raspberry Pi 데스크탑에 원격으로 액세스했습니다. 내 원래 RPi, RPi2 및 RPi3에서 작동합니다. 물론 원격 시스템에서 X11 전달을 허용하려면 sshd_config를 수정해야 합니다(클라이언트/호스트라고 말하고 싶지만 X11에서는 다른 용도와 다르게 사용된다고 생각하므로 혼란스러울 수 있습니다). 공백에 주의하십시오. 입력할 수 없을 때 공백으로 인해 프로세스가 망가지는 경우가 많습니다.

그러면 전체 데스크탑이 있고 마치 물리적으로 연결된 것처럼 컴퓨터를 실행할 수 있습니다. CTRL++를 사용 ALT하여 Ubuntu로 전환한 다음 ++를 사용하여 F7RPi로 돌아갔습니다. YMMV. 한 가지 특이한 점: 앞뒤로 전환할 때 다른 기능 키를 누르기 전에 물리적으로 +를 놓아야 합니다.CTRLALTF2CTRLALT

원본 링크: http://xmodulo.com/2013/12/remote-control-raspberry-pi.html

원작: Kristophorus Hadiono. 안타깝게도 참조된 이미지가 손실되었습니다.

업데이트(20230411): 사이트가 백업된 것 같습니다.


방법 #3: SSH를 통한 X11 데스크탑 전달

X11+SSH 전달을 사용하면 실제로 독립 실행형 GUI 애플리케이션뿐만 아니라 Raspberry Pi의 전체 데스크톱을 원격으로 실행할 수 있습니다.

여기서는 X11 전달을 통해 두 번째 가상 터미널(예: 가상 터미널 8)에서 원격 RPi 데스크톱을 실행하는 방법을 보여줍니다. 기본적으로 Linux 데스크톱은 첫 번째 가상 터미널인 가상 터미널 #7에서 실행됩니다. RPi 데스크탑을 두 번째 가상 터미널에 표시하려면 아래 지침을 따르십시오.

콘솔이나 터미널을 열고 루트 사용자로 변경합니다.

sudo su

가상 터미널 8에서 xinit를 활성화하는 다음 명령을 입력하십시오. 자동으로 가상 터미널 8로 전환됩니다. CTRL++ 를 눌러 ALT원래 가상 터미널 7로 다시 전환 할 수 있습니다 F7.

xinit -- :1 &

가상 터미널 8로 전환한 후, 다음 명령어를 실행하여 RPi 데스크톱을 원격으로 시작합니다. 요청 시 pi 사용자 비밀번호를 입력하십시오(아래 이미지 참조).

DISPLAY=:1 ssh -X [email protected] lxsession

원격 RPi 데스크톱과 활성 가상 터미널 7에서 시작된 소형 터미널을 새 가상 터미널 8로 가져옵니다(아래 그림 참조).

기억하다,원하지 않는다터미널을 닫습니다. 그렇지 않으면 RPi 데스크톱이 즉시 종료됩니다.

+ CTRL또는 + ALT+ 를 눌러 첫 번째 가상 터미널과 두 번째 가상 터미널 사이를 이동할 수 있습니다 .F7CTRLALTF8

X11+SSH를 통해 원격 RPi 데스크톱을 닫으려면 활성 가상 터미널 8(위 이미지 참조)에 표시되는 작은 터미널을 닫거나 가상 터미널 7에서 실행 중인 su 세션을 종료할 수 있습니다.

답변2

아직 테스트하지는 않았지만 로컬 X11 서버를 종료한 다음(보통 X11 디스플레이 관리자를 중지하여 gdm) sddm가상 xdm콘솔 *dm에 로그인하고 GNOME의 경우 사용자 정의 X11 세션을 시작합니다.

xinit ssh -X user@remote-server gnome-session 

또는 KDE의 경우:

xinit ssh -X user@remote-server startkde

일반적으로 X11 디스플레이 관리자는 X11 서버를 시작하고 로그인 대화 상자를 표시하고 인증을 처리한 다음(선택적으로 인증 전후에 일부 초기화 스크립트를 루트로 실행) 로그인한 사용자처럼 단일 명령이나 스크립트를 실행합니다. 회의의 중심이 됩니다. 이 스크립트의 일반적인 기본 버전은 이지만 /etc/X11/XsessionGnome 및 KDE와 같은 데스크탑 환경에서는 이를 자체 명령으로 대체할 수 있습니다. 이 명령/스크립트는 세션 수명 동안 활성 상태로 유지됩니다. 어떤 이유로든 종료되면 X11 디스플레이 관리자는 세션이 로그아웃되었거나 충돌했다고 가정하고 X11 서버를 재설정하고 다시 시작합니다.

startxX11 디스플레이 관리자 없이 가상 콘솔에서 단일 X11 세션을 시작할 때 xinitX11 서버 및 세션 명령/스크립트를 시작하는 래퍼 스크립트입니다.

당신이 원하는 것은 X11 서버를 시작하는 것이지만 ssh -X로컬 세션 명령 대신에 이를 사용하여 실행하는 것입니다.실제원격 호스트의 X11 세션 명령/스크립트.

xinit명령은 로컬 X11 서버를 시작하지만 클라이언트는 이 명령뿐입니다 ssh. 그러면 sshX11 전달이 설정되고, 원격 호스트에 연결되고, 로그인하고, 원격 호스트에서 적절한 데스크톱 환경 세션을 시작하는 데 필요한 명령이 실행됩니다. $DISPLAY변수와 ~/.Xauthority파일이 설정되므로 모든 ssh -XX11 응용 프로그램(X11 창 관리자 포함)을 실행할 수 있어야 합니다.

그러나 X11 서버는 로컬로 액세스할 수 없으므로 성능을 향상시키는 다양한 X11 프로토콜 확장을 자동으로 사용할 수 없으며 네트워크 연결 + SSH 암호화로 인해 눈에 띄는 지연이 발생합니다. 창 관리자와 다른 X11 응용 프로그램 간의 모든 상호 작용은 X11 서버를 거쳐야 합니다. 이는 각 방법이 네트워크를 두 번 통과한다는 것을 의미합니다. 따라서 로컬 데스크톱을 실행하는 것보다 속도가 확실히 느립니다.

일부 데스크탑 위젯은 원격으로 실행할 때 호스트의 하드웨어 장치 및/또는 시스템 D-Bus에 대해 예상되는 모든 액세스 수준을 반드시 가질 수 없기 때문에 혼동될 수 있습니다.

답변3

Lubuntu/LXDE로 원하는 작업을 수행할 수 있습니다(제 생각에는!). 를 ssh -Y사용하여 원격 Lubuntu 시스템에 로그인 lxsession하고 로컬에서 실행되는 LXDE 작업 표시줄을 얻을 수 있습니다. 로컬에서 실행되는 X 창을 포함하여 다른 X 창을 선택하고 관리하는 것 같습니다! 대부분의 X 서버에는 클라이언트 운영 체제에서 별도의 부동 X 창으로 실행하거나 전체 화면을 실행할 수 있는 백그라운드에서 실행할 수 있는 옵션이 있습니다. (작업 표시줄 자체 는 lxsession이라고 생각합니다 lxpanel), 두 개의 로컬 xterm, 로그인되어 ssh를 통해 시작된 Mac iTerm 세션 lxsession, 원격 lxterm및 원격 xeyes.

여기에 이미지 설명을 입력하세요.

다른 배포판에서는 데스크탑을 실행하기 위해 다른 명령이 필요합니다(예: Ubuntu 또는 GNOME이 포함된 Mint). 하지만 gnome-session다른 컴퓨터에서 작동하도록 할 수는 없습니다.

답변4

좀 읽어야 할 것 같아요. X가 키보드와 마우스를 서버로 설명하고 영리한 작업이 클라이언트로 발생하는 것이 이상하다고 생각할 수도 있습니다. 그러나 이는 의미가 있습니다(클라이언트가 서버에 대한 연결을 시작합니다). 원하는 결과를 얻는 데 혼란이 어떻게 발생하는지에 대한 이해.

목표를 달성하는 방법에는 여러 가지가 있습니다. 일부 해설자는 SSH 연결을 사용하여 xinit를 실행할 것을 권장합니다. drkvogel은 SSH를 통해 단일 프로그램을 호출할 것을 제안합니다. 그러나 해당 프로그램이 다른 프로그램을 시작할 수 있는 경우 로컬 시스템에 대한 연결을 끊지 않고 설명하는 효율적인 기능을 제공합니다.

그러나 Linux 이전에도 사람들은 실제로는 터미널인 X 터미널에서 X 응용 프로그램을 실행하고 있었습니다. 어떤 응용 프로그램도 로컬에서 실행할 수 없었습니다. 이러한 장치를 구성하는 데 사용되는 프로토콜을 XDMCP라고 합니다. 빠른 Google 검색으로 찾았습니다.이것초기 로그인 기능을 제공하는 X 클라이언트인 디스플레이 관리자를 구성하는 방법을 설명합니다. 해당 기사에서는 서버(화면과 키보드가 있는 것)에서 xnest를 사용하는 것에 대해서만 언급했지만 원격 세션에만 전체 디스플레이를 사용하는 것도 가능합니다.

X -query client.host.net

여기서 "X"는 xinit가 실행되는 첫 번째 항목이고 client.host.net은 X 클라이언트가 실행되고 수정된 디스플레이 관리자를 호스팅해야 하는 곳입니다.

네트워크 전송은 상당히 안전하지 않습니다. 신뢰할 수 없는 네트워크를 통해 연결하려면 VPN 사용을 고려하세요.

X는 오디오 기능을 제공하지 않으며 비디오/키보드 및 마우스만 제공합니다. 그것이 중요하다면 향신료를 살펴보세요.

좀 더 부지런히 인터넷 검색을 해보면 다음과 같은 결과가 나옵니다.https://tldp.org/HOWTO/XDM-Xterm/index.html

관련 정보