-X로 ssh'ing 할 때“경고 : 신뢰할 수없는 X11 전달 설정 실패 : xauth 키 데이터가 생성되지 않음”은 무엇을 의미합니까?


134

내가 사용하는 경우 ssh -X내 Mac에서 내 우분투 (11.04) 상자에 연결 (OS X 10.6.7를 실행), 나는 다음과 같은 경고를 얻을 :

경고 : 신뢰할 수없는 X11 전달 설정에 실패했습니다 : xauth 키 데이터가 생성되지 않음 경고 : xauth 데이터가 없습니다. X11 전달에 가짜 인증 데이터 사용

이 경고를 없애기 위해 할 수있는 일이 있습니까? 그렇지 않다면 안전하게 무시해도됩니까?

이 메시지가 표시되지만 X11 전달이 제대로 작동하는 것 같습니다.

Xlib : 확장 "RANDR"이 디스플레이 "localhost : 10.0"에 없습니다.

경고와 관련이 있습니까? (나는 추측하지 않고있다. 그렇지 않다면, 그것에 대해 새로운 질문을 할 것이다.)


1
xauth 프로그램이 우분투 서버에 설치되어 있습니까?
slubman

sudo apt-get install xauth"xauth는 이미 최신 버전입니다"
Daryl Spitzer

우분투 서버에 로그인하면 'which xauth'의 결과는 무엇입니까?
slubman

사실 나는이 설명을 읽어해야한다고 생각 : mail-archive.com/cygwin-xfree@cygwin.com/msg17927.html가 ...이 경고는 무시할 수 있습니다
slubman

2
때때로 이것은 ~ / .Xauthority 파일의 문제로 인해 발생할 수 있습니다. 삭제하면 다음에 로그인을 시도 할 때 다시 작성됩니다.
마이클

답변:


145

-X 플래그 대신 -Y 플래그를 사용하지 않으려는 이유는 무엇입니까?

간단히 말해서 -X와 -Y의 차이점은 -Y는 신뢰할 수있는 X11 전달을 가능하게한다는 것입니다.


4
아니요, 질문을 쓸 때 -Y 플래그를 알지 못했습니다. 나는 그것이 해결책이라고 판명했다. 질문이 아니도록 답변을 변경하십시오 (그리고 -Y와 -C의 차이점을 간단히 설명하면 좋을 것입니다).
Daryl Spitzer 2012

-X 대신 -Y를 사용하고 싶지 않은 경우가 있습니까?
Rooster

-Y 내가 말할 것입니다 지원되지 않는 아주 오래된 시스템 @Rooster
페트르

문제 해결 팁 : "ssh -vv ..."를 실행하고 xauth 줄과 오류 메시지를 찾으십시오. 직접 표시된 xauth 줄을 실행 해 볼 수 있습니다. 내 경우에는 "xauth -f / tmp / ssh ... list : 0"(unrusted)이 아닌 "xauth list : 0"(신뢰할 수있는)과 같은 것이 필요했습니다. 원격 호스트 / etc / ssh / ssh_config (또는 ~ / .ssh / config)에서 어느 -Y가 수정되었고 "ForwardX11Trusted yes"도 수정되었습니다.
커티스 얄롭

이 솔루션은 Cygwin / X에서도 작동했습니다.
linux64kb

25

2015 년에 여기에 온다면 : 다른 모든 것이 올바르게 설정 되었더라도 ssh -XXQuartz 버전 <= 2.7.7을 사용 하고 실행할 때 Mac OS X 10.10 Yosemite에서도 발생할 수 있습니다 . 근본 원인은 X11 디스플레이 소켓이 xauth 검색 경로 외부에 쓰여지는 것입니다 : XQuartz 트래커의 이슈 # 2068 .

편집 : 고정 된 XQuartz는 이후 새로운 홈페이지 xquartz.org 에 릴리스되었으며 최신 버전 (현재 2.7.9)을 설치하면 문제가 해결됩니다.


1
감사합니다! 나는 없었다 아무 생각 XQuartz 나는 것을 단지 XQuartz 페이지의 상단에서 다운로드 실제로 최신 릴리스되지 않습니다.
craigds

가치가 있음을 지적 brew install xquartz현재 최신 2.7.7 버전의 아웃 설치합니다.
Martin Cleaver

brew install Caskroom/cask/xquartz
Nick

또는 더 짧습니다 brew cask install xquartz.
Franklin Yu

17

를 사용할 때도 동일한 메시지가 표시되면 서버 -Y에서 xauth프로그램이 누락되었을 수 있습니다. 데비안 계열 시스템에서는 xauth패키지 가 필요합니다 . RedHat와 같은 시스템에서는 xorg-x11-xauth패키지 가 필요합니다 .


15

이 문맥에서 "신뢰할 수 없음"은 연결을 신뢰할 수 없음을 의미합니다. SSH는 추가 보안 조치를 사용하여 X11 전달을보다 안전하게 만듭니다. "신뢰할 수 있음"은 원격 호스트에서 Xauth 데이터에 액세스 할 수 없으며 키 스트로크를 모니터링하는 데 사용한다는 것을 전적으로 확신합니다.

이 용어는 실제로 몇 년 동안 저를 혼란스럽게했습니다. "신뢰할 수있는"연결이 더 안전하다고 생각했습니다. 그러나 실제로는 연결이 신뢰할 수 있고 추가 보안 조치를 취하지 않고 물건을 실행하려는 경우 사용하는 옵션입니다. "신뢰할 수 없음"은 신뢰할 수없는 원격 호스트를 처리하는 것이 더 안전합니다.

"신뢰할 수없는"연결은 X11 보안 확장을 사용하고 필요하지 않은 다른 확장을 비활성화하여 블랙 햇이 수행 할 수있는 작업을 제한하려고합니다. 이것이 아마도 RandR이 -X로 비활성화 된 이유 일 것입니다. 원격 호스트에서 X 디스플레이를 회전 할 수 있어야합니까?

또한 일정 시간이 지나면 "신뢰할 수없는"X11 포워딩이 꺼 지므로 실수로 전원이 꺼지지 않도록주의해야합니다. 그 후 창을 열려는 새로운 시도는 실패 할 것입니다. 무슨 일이 일어나고 있는지 이해하기에 충분한 문서를 읽기 전에 여러 번 물었습니다.


9

이 동작을 수행 할 수있는 설정이 없으므로 어두운 곳에서 촬영 한 것입니다.

이 경고 를 제공하는 호스트 ForwardX11Trusted"no"대해 설정하면 경고가 표시되지 않을 수 있습니다 . ~/.ssh/config또는 에 둘 중 하나를 배치 할 수 있으며 위 의 줄 /etc/ssh/ssh_config에 포함시켜 특정 호스트에 특정 옵션을 지정할 수 있습니다 Host <hostname>. <hostname>구성 요소는 명령 행 (안 해결 호스트 이름)에 입력 한 내용과 일치, 그리고 와일드 카드를 포함 할 수 있습니다.


하나는 사용할 수있는 ssh -Y신뢰할 수있는 X11 포워딩을 수행하지만 어떻게 하나가 신뢰할 수없는 하나를 해결할 수 있습니까?
Pavel Šimerda

Redhat에서 동일한 오류가 발생했으며 이제 /etc/ssh/ssh_config클라이언트 측에서 구성 파일 을 편집하여 해결할 수 있습니다. 감사합니다
Gangadhar Jannu

7

BEWARE (보안 결함으로 이어지는 불완전한 답변을 읽는 데 어려움을 겪음 )

1 / ssh -Y를 사용한다는 것은 여기에 잘못된 xauth 정보가 있다는 것을 의미합니다!

2 / ssh -X는 XQuartz가 일단 활성화되면 xauth를 사용하므로 작동해야합니다. 유일한 문제는 ssh가 / usr / X11R6 / bin에서 xauth를 찾고 XQuartz가있는 macos에서는 / opt / X11 / bin에 있다는 것입니다.

안전한 해결 :

1 / 인증 된 연결을 가능하게하는 기본 설정 (Cmd-,)의 보안 탭 에서 첫 번째 옵션을 활성화합니다

2 / 추가

XAuthLocation /opt/X11/bin/xauth

$ HOME / .ssh / config에서

3 / ssh -X you_server안전한 방법으로 일


6

설치 xauth가 제대로 작동하지 않으면 특히 성가신 경우가 손상된 .Xauthority파일 일 수 있습니다 . 이 특별한 경우에는 일부 X 클라이언트가 작동했지만 새로운 디스플레이로 실패하는 경향이 더 큰 클라이언트는 그렇지 않았습니다. .Xauthority파일을 제거하고 다시 작성하면 해당 문제점을 해결할 수 있습니다.


6

서버 측 문제 배제

먼저 서버 측 문제를 배제해야합니다. ssh -X다른 호스트에서 성공적으로 작업 할 수 있습니까? ssh -Y작동 ssh -X하지 않는 동안 작동 합니까 ? 두 경우 모두 서버에 ssh + X11이 올바르게 설정되어 있다고 가정하고 다음 섹션으로 넘어갑니다.

X11을 실행하는 랩톱 하나만 가지고 있는지 확인 할 수있는 위치에 없다면 ssh가짜 세션을 사용하여 서버에서 자체 서버로 이동할 수 있습니다 .

  1. export DISPLAY=:44# (본 쉘) 또는
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 #이 테스트를위한 가짜 쿠키
  3. ssh -X localhost env |grep DISPLAY

예상 결과 : ssh-to-self 세션의 원격 끝에 DISPLAY 변수가 설정되어 있어야합니다. 결과가 나타나지 않으면 서버가 잘못 구성되었을 수 있습니다 (예 : X11 라이브러리 및 / 또는 xauth명령이 누락되었거나 sshd 구성이 X11 액세스를 거부하도록 설정 되었을 수 있음)

Mac : Xquartz가 최신인지 확인하십시오

윌 Angley의 대답

ssh -vv -X출력 검사

인용하는 오류 메시지는 여러 가지 원인이있을 수있는 증상입니다. X11 터널 설정이 실패한 이유에 대한 추가 정보를 제공하는로 다시 시도하십시오 .ssh -X -vv remotehost

다음과 같은 메시지가 나타 납니까?

debug1 : xauth 프로그램이 없습니다.
그렇다면,

  1. 클라이언트 시스템에서 xauth명령이 상주 하는 위치를 기록하십시오 .
    어느 xauth
  2. ~ / .ssh / config의 맨 끝에 다음을 추가하십시오 (그리고 나중에이를 유지하도록 상기시키는 주석을 추가하십시오).
    호스트 *
        XAuthLocation / opt / X11 / bin / xauth
    
    1 단계의 결과에 따라이 경로를 조정 — Jan-Willem Arnold의 크레딧

3

위에서 이미 설명한 것처럼 다음이 나를 위해 일했습니다.

~ / .ssh / config 를 편집 하여 줄을 추가하십시오.

Host *
    XAuthLocation /opt/X11/bin/xauth

이제 ssh -X 호스트 이름이 작동합니다 (XQuartz 2.7.11, macOS 10.4 Mojave)


0

이미 최신 XQuartz 2.7.11을 설치했지만 그 이후로 OS를 몇 번 업데이트했다고 생각합니다. XQuartz 2.7.11을 다시 설치했는데 이제 제대로 작동합니다.


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