-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.