SSH X11 포워딩 (`ssh -X`)을 사용하면 X 응용 프로그램을 실행하려고 시도하는 '디스플레이를 열 수 없습니다'


22

다음을 사용하여 서버에 로그인 할 수 있습니다

ssh -X Hostip

하지만 xclock 명령을 실행하면이 오류가 발생합니다.

Error: Can't open display: localhost:11.0

다음을 사용하여 디스플레이 값을 확인합니다.

echo $DISPLAY

결과는

localhost:11.0

그리고 sshd_config 파일에서 X11 전달이 YES로 설정되었습니다.

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

내가 여기서 잃어버린 조언이 있습니까?


3
-Y대신 사용해 보셨습니까 -X?
Flup

2
또한 -Y대신에 사용의 의미를 이해해야합니다 -X. 을보고 싶을 수도 있습니다 xhost.
CVn

1
RedHat / CentOS 7 (적어도)의 경우 여기에 대한 답변에 따라 xorg-x11-xauth 패키지가 필요합니다. unix.stackexchange.com/questions/138936/…
Mike S

답변:


18

사용하십시오 -Y. ssh의 매뉴얼 페이지에서 :

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

그래도 문제가 지속되면 로컬 박스의 IP로 설정해$DISPLAY 보십시오 .

$ export DISPLAY='<ip_address>:11.0'

다음과 같이 설정하면 작동 할 수 있습니다

$ export DISPLAY='127.0.0.1:11.0'

사람들은 Mac OS X에서 ssh때이 문제가 일반적으로 발생하는 것 같습니다 . 설정할 수도 있습니다

X11UseLocalhost no

이 경우에도 마찬가지입니다.


1
XQuartz를 사용하여 -Y 플래그를 사용할 수 없습니다. "잘못된 인증으로 인해 X11 연결이 거부되었습니다."
Erik

5
다른 제안을 시도한 후에도 디스플레이를 열 수 없습니다.
Erik

2
이 중 어느 것도 나를 위해 일하지 않았습니다. yum groupinstall "X Window System"-y
Mark Edington

@MarkEdington 이것은 RedHat / CentOS에 내 대답에 따라 xorg-x11-xauth 패키지가 필요하기 때문입니다. unix.stackexchange.com/questions/138936/…
Mike S

6

이것은 나를 위해 일했다 :

변화

X11UseLocalhost yes

X11UseLocalhost no

고마워, 돈 저에게도 효과가있었습니다. 나는 당신에게 공감대를 주었다. 기본값을 방해하는 문제는 특정 컴퓨터가 xhost를 사용한다는 것입니다.
LD James

6
손님? 주최자? 어떤 구성 파일? thx 님의 답변을 완성하십시오
Philippe Gachoud

설정을에 드롭하여 작동하도록 만들었습니다 /etc/ssh/sshd_config.
llinfeng

6

진단 지침 은 /unix//a/12772/61349참조하십시오 .

ssh 클라이언트가 -v 플래그를 사용하여 X11 전달을 요청하고 있는지 확인하십시오.

ssh example.com -X -v

특정 메시지를 찾으십시오.

debug1: Requesting X11 forwarding with authentication spoofing.

또 다른 telltail 문제 신호는 DISPLAY환경 변수 beign 이 부족하다는 것입니다. 공백 / 미 설정 인 경우 문제가있는 것입니다. 적어도 위에 표시된 동일한 게시물 에 따라 이러한 변수는 자동으로 설정됩니다.


SSH 컨트롤 마스터를 사용하여 ssh 연결을 다음과 같이 사용했습니다.

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

이전의 ssh 연결은 X11Firwarding을 요청하지 않았으므로 향후 ssh통화 옵션이 사용되지 않았습니다. 그래서 나를 위해

ssh -X는 완전히 무시당했습니다.

"X11 전달 요청"이 표시되지 않지만 muxer가 세션을 재사용하는 것을 볼 수 있습니다.

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

그런 다음 해당 연결을 위해 현재 ControlMaster를 종료하고 -X / -Y 플래그로 다시 연결해야합니다.

ControlMaster를 중지하려면

ssh -O check <hostname>

Master running (pid=2758)

(ControlMaster를 사용하여 모든 활성 연결을 종료합니다)

ssh -O exit <hostname>

Exit request sent.

3

macOS에서 XQuartz로 전달하려고 할 때 XQuartz 터미널에서 ssh명령 을 실행하여 문제를 해결 ssh -Y했습니다 (도크에서 XQuartz 아이콘을 마우스 오른쪽 버튼으로 클릭하고 응용 프로그램> 터미널을 클릭하여 열림).


이것은 나를 위해 일했다
dli

3

나를 위해 이것을 고친 것은 단순히 xauth를 설치하는 것입니다.

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