X11은 모든 것을 전달하지 않습니다

X11은 모든 것을 전달하지 않습니다

이 질문에 다양한 변형이 있다는 것을 알고 있지만 이 상황에 대한 해결책을 찾을 수 없습니다.

설정: 로컬 컴퓨터, 원격 컴퓨터(동일한 로컬 네트워크에 있음). 내 로컬 컴퓨터(Ubuntu 20.04)에는 다음 줄이 있습니다 ~/.ssh/config.

Host remote
    User username
    HostName remote.local
    Port 223
    ForwardX11 yes
    ForwardX11Trusted yes

원격 컴퓨터(Ubuntu 22.04)에는 다음 줄이 있습니다 /etc/ssh/sshd_config.

Port 223
X11Forwarding yes
X11DisplayOffset 10

(물론 포트는 중요하지 않습니다.) 연결했는데 ssh remote문제가 없습니다. 변수 는 (물론) (때로는 ) DISPLAY로 설정됩니다 . 달리 거나 보면 괜찮아요. 완벽하게 작동합니다.localhost:11.0localhost:10.0xclockxlogo

하지만 문제는 거의 모든 다른 GUI 응용 프로그램을 실행할 때마다 작동하지 않는다는 것입니다. 오류가 인쇄되는 경우도 있고, 조용히 실패하는 경우도 있습니다. 예:

  1. 실행은 eog picture.png조용히 실패했습니다. 어떤 메시지나 사진도 보지 못했습니다.
  2. 을 실행할 때 evincePDF를 볼 수 없으며 중복된 오류 메시지가 표시됩니다: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed. gnome-calculator비슷한 오류로 인해 실패합니다.
  3. 실행이 firefox실패하고(프로세스가 이전에 존재하지 않았음에도 불구하고 브라우저를 볼 수 없음) 다음과 같은 오류 메시지가 반복적으로 표시됩니다.X11 connection rejected because of wrong authentication.
  4. 두 번째 실행을 위해 연결을 끊었다가 다시 연결한 후 firefox오류 메시지가 변경되었습니다 Error: cannot open display: localhost:11.0.

이 시점에서 나는 조금 길을 잃었습니다.

또한 흥미로운 질문을 찾기 위해 장황한 모드로 연결했습니다. 관련성이 있을 수 있는 유일한 줄은 다음과 같습니다.

debug1: Remote: /home/username/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Remote: /home/username/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug2: channel_input_open_confirmation: channel 0: callback start
debug2: x11_get_proto: /usr/bin/xauth  list :0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 1

좋아 보이는데, 그렇지 않나요?

sage내 사용 사례는 실제로 매우 간단합니다. 내부적으로 (또는 ) 원격으로 다이어그램을 Python그리고 로컬에서 볼 필요가 있습니다. 예전에는 다른 컴퓨터를 사용하여 이 작업을 수행할 수 있었지만 그건 오래전 일이었습니다. 내 해결 방법은 도면을 저장하고 이를 로컬에서(를 통해 sshfs) 여는 것이었습니다. 이는 약간 어리석은 일입니다.

답변1

문제는 Wayland를 원격으로 실행하고 있으며 응용 프로그램이 기본값으로 설정되어 있다는 것입니다.

세션을 시작한 후 다음을 수행할 수 있습니다.

$ export GDK_BACKEND=x11

일반(deb 설치) 애플리케이션이 전달됩니다. 따라서 예를 들어 다음 eog을 사용할 수 있습니다 evince.

Firefox는 아마도 귀하의 설정에서 매우 중요한 부분일 것입니다. 스냅샷 문제는 오랫동안 존재해 왔습니다. 스냅 버그 추적기에는 다음과 같은 버그가 있습니다."Ssh를 통해 스냅을 사용할 때 인증 오류로 인해 X11 연결이 거부되었습니다.". 마지막 댓글에는 버그가 분류되었으며 해결 방법이 있다고 명시되어 있지만 해결 방법은더 이상 일하지 않는다(XAUTHORITY를 내보내거나 .Xauthority를 ​​스냅샷에 연결하여 위치를 확인하세요.)

Firefox의 두 가지 대안:

  • X11을 사용하여 gdm 세션을 시작할 수 있습니다(로그아웃 시, 로그인 시, 비밀번호를 입력해야 할 때 세션 유형을 제공하는 기어가 있습니다).
  • firefox.com에서 해당 플랫폼에 맞는 Firefox 바이너리를 다운로드하고 snap 대신 실행하세요. 더 이상 스냅샷이 아니므로 evince및 처럼 작동 해야 합니다 eog. 또한 새 버전이 출시되면 다운로드하고 업데이트하라는 메시지도 표시됩니다.

관련 정보