xauth 데이터 없음 경고를 어떻게 방지 할 수 있습니까? X11 전달에 가짜 인증 데이터를 사용합니까?


66

Mac에서 Linux (Debian)로 ssh 연결을 시작할 때마다 다음 경고가 표시됩니다.

No xauth data; using fake authentication data for X11 forwarding.

이것은 git 또는 mercurial과 같은 ssh를 사용하는 도구에서도 발생합니다.

이 문제가 발생하지 않도록 시스템을 로컬에서 변경하고 싶습니다.

참고 : Mac OS X (10.8.1)에 X11 서버 (XQuartz 2.7.3 (xorg-server 1.12.4))가 있으며 제대로 작동하면 로컬 또는 원격으로 시계를 성공적으로 시작할 수 있습니다.


1
ssh에 어떤 명령을 사용하고 있습니까?
— DerfK

@DerfK ssh hostname하지만 방금 전에 ~/.ssh/config추가 ForwardX11 yes했습니다. 여전히 이것은 내가 갖고 싶은 것입니다.
— sorin

우분투 16.04 LTS (2017 년 8 월)를 사용하여 포기합니다. 결론은 오류가 발생하더라도 작동한다는 것입니다. 내가 사용하는 ssh -Y hostname리눅스 및 ssh -x hostnameWindows에서 OpenSSH를를 사용하는 경우.
— SDsolar

답변:


66

게시 된 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 내 클라이언트 (데스크톱) 시스템에서 macOS 10.12.5 (Sierra)를 실행하고 있습니다. 나는 명령 -v옵션에 추가 하고 ssh나에게 말했다.

debug1: No xauth program.

이는 xauth프로그램에 대한 올바른 경로가 없음을 의미합니다 . (이 버전의 macOS에서는 경로 xauth가 비표준입니다.) 해결책은이 줄을 다음 설정 에 추가 하거나 ( 일부 설정에 /etc/ssh/ssh_config있을 수 있음 /etc/ssh/config) ~/.ssh/config(관리자 권한이없는 경우) 것입니다.

XAuthLocation /opt/X11/bin/xauth

이제 경고 메시지가 사라졌습니다.


10
세상에 몇 년 동안 나는 해결책을 찾으려고 노력했으며 이것이 효과가있었습니다. 내가 말하는 년! 편집하는 대신 파일 의 Host *항목 아래에 해당 줄을 추가하여이 ~/.ssh/config작업을 수행했습니다 /etc/ssh/ssh_config. 내가 찾은 유일한 문서는에 man sshd_config있습니다.
— Demitri

이것은 나를 위해 일했다. 나는 현재 자금 부족으로 XQuartz가 잘 유지되고 있지 않다는 것을 알고 있습니다. 따라서 이와 같은 이식 문제는 실제로 예상보다 적습니다.
— AlanObject

High Sierra에서; 이것은 나를 위해 일한 것입니다.
— mklein9

1
쉘이 PATH에서 xauth 를 찾을 수있는 경우에도이 문제가 발생할 수 있습니다 ! 보안상의 이유로 ssh 클라이언트가 PATH를 삭제하는 것 같습니다.
— MarcH

1
이 솔루션은 저에게 효과적이지 않았습니다. Win7에서 Cygwin을 사용하고 있습니다. "Host *"항목 아래 또는 ~ / .ssh / config의 해당 줄 앞에 "XAuthLocation / usr / bin / xauth"를 추가해도 아무런 차이가 없습니다.
— David M. Karr

22

원인이 발견 ~/.ssh/config되었습니다. 불완전했습니다. 둘 다 필요합니다.

Host *
    ForwardAgent yes
    ForwardX11 yes

실수는 ForwardX11 옵션 만 포함했다는 것입니다.


12
왜 이것이 필요한지 확실하지 않습니다. ForwardAgent캐시 된 키가 ssh-agent여러 개의 중첩 된 SSH 연결을 통과 하도록하는 데 사용됩니다 . X11과 관련이 없어야합니다. 그리고 일부에 따르면, fwiw, 그것은 보안 현명하지 않다 : heipei.github.io/2015/02/26/…
— underscore_d

2
그것은 제대로 들리지 않습니다. 실제로 도움이되는 것은 X11 전달을 끄거나 xauth 구성을 수정하여 설정하는 것입니다. ssh 에이전트와 관련이 없습니다.
— eckes

이 솔루션은 저에게 효과적이지 않았습니다.
— David M. Karr

이다 ~/.ssh/config맥 OS 클라이언트 또는 리눅스 서버에? 나는이 파일들을 가지고 있지 않다. 나는 비슷한해야합니까/etc/ssh/sshd_config
— 최대 코플란

12

Windows 10에서 Ubuntu bash를 실행 ssh -X 하여 원격 서버에서 GUI 환경 가져 오기

  • 먼저

다음을 모두 설치하십시오. Window에서 설치하십시오 Xming. Ubuntu bash에서을 사용 sudo apt install하여 설치하십시오 ssh xauth xorg.

sudo apt install ssh xauth xorg
  • 둘째

ssh_config파일이 들어있는 폴더로 이동하십시오 /etc/ssh.

  • 제삼

ssh_config관리자로 편집하십시오 (USE sudo). 내부 ssh_config해시를 제거 #선에 ForwardAgent, ForwardX11, ForwardX11Trusted,과에 해당 인수를 설정 yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • 앞으로

에서 ssh_config파일, 전면 해시를 제거 #하기 전에 Port 22하고 Protocol 2, 또한 xauth를 파일 위치를 상태로 파일의 끝에 새 줄을 추가, XauthLocation /usr/bin/xauth, xauth를 파일의 당신의 자신의 경로를 쓰기 기억한다.

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • 다섯째

이제 ssh_config파일 편집이 완료되었으므로 편집기를 떠날 때 저장하십시오. 이제 폴더 ~또는 로 이동 하여 파일에 $HOME추가 하고 저장하십시오.export DISPLAY=localhost:0.bashrc

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • 마지막

우리는 거의 끝났습니다. bash 쉘을 다시 시작 Xming하고 프로그램을 열고 를 사용하십시오 ssh -X yourusername@yourhost. 그런 다음 GUI 환경을 즐기십시오.

ssh -X yourusername@yourhost

문제는 Windows의 Ubuntu 하위 시스템에도 있으며 링크는

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

링크 된 텍스트가 2 오타가 포함되어 있습니다 (참고 : XauthLocaion대신 XauthLocation)


문제는 Windows에 관한 것이 아닙니다.
— kasperd

MacOS의 경우 거의 동일합니다. 차이점은 대신에 Xming이어야 XQuartz합니다. ssh_config파일은 다른 위치에 /private/etc/ssh있습니다.
— DestinyOne

그리고 마지막 줄 ssh_config은 다음과 같습니다.XAuthLocation /opt/X11/bin/xauth
— DestinyOne

2
편집 필요 : XauthLocaion-> XauthLocation(편집하기에 너무 작습니다).
— echristopherson

1
설치 게다가 xming, ssh, xauth,과 xorg(1 단계), 나를 위해 필요한 유일한 일이었다export DISPLAY=localhost:0
— 시조

11

언급했듯이 xauthOS X에서 Yosemite는 XQuartz의 $DISPLAY설정에서 작동하지 않는 이전 버전으로 되돌아갔습니다 .

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command

1
OS X 10.11에서 동일한 줄을 테스트했지만 오류가 발생하지 않습니다. XQuartz와 동일한 버전입니다.
— sorin

1
@guest 귀하의 xauth generate $DISPLAY .명령은 Mac OS X High Sierra (10.13)에서 작동했으며 No xauth data; using fake authentication data for X11 forwarding.pb를 해결했습니다 .
— SebMa

2

현재 MacOS에 버그가 있습니다. 나는 이것도 만났다. 나를위한 수정은 내 .bash_profile에 다음을 추가하는 것과 관련이 있습니다.

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

기본적으로 X 루트와 연관된 파일 파이프의 이름을 올바르게 처리 할 수 ​​없으므로 수정이 필요합니다. :-)


이것이 SourceTree와 같은 GUI OS X 앱의 오류를 해결할 수 있을지 의문입니다.
— sorin

Mac이 서버이므로 X를 사용하여 emacs를 실행하기 위해 Sierra에서 작동하는지 확인하십시오. 이것은 클라이언트가 원격 컴퓨터에있는 경우 광범위하게 작동합니다.
— Mark Mullin

2

포함

~ / .ssh / config의 XAuthLocation / opt / local / bin / xauth

내 macOS Sierra 10.12.6에서 나를 위해 일했습니다. 답변 7의 작은 변화 7).


1

방금 루트 폴더에서 ~ / .Xauthority (대상 시스템)를 제거하고 ssh -X 192.168.123.1을 다시 제거하고 ik이 작동했습니다.


이것이 Mac OS Sierra 10.12.4에 대한 답변임을 확인할 수 있습니다. SSH 서버에서 ~ / .Xauthority 를 제거 하면 트릭 ~$ mv ~/.Xauthority ~/.Xauthority.bak 이 수행됩니다. 다시 로그인하면 새로운 매직 쿠키가 ~ / .Xauthority에 자동으로 다시 입력되었습니다. Bash 스크립팅이 전혀 필요하지 않습니다.
— 케네스 페가수스

1

내 경우는, 매직 쿠키를 포함 .Xauthority에 문제가 전달되지 않았습니다에 Fabby http://askubuntu.com/questions/571116/이 의 .bashrc의 끝 부분에이 줄을 추가 2014년 11월 14일에 권장 또는 . su를 호출 할 때 사용자간에 xauth 키를 전달할 수있는 프로파일 :

export $(dbus-launch)

나는 또한 이전에 추가했다 :

export XAUTHORITY=~/.Xauthority 

ssh -X로 호출 된 원격을 확인하려면 ̍ @에서 찾습니다.

제 경우에는 .Xauthority는 원래 사용자 /home//.Xauthority에 대한 심볼릭 링크입니다 ...

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

올바른 권리

  sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

따라서에 액세스 할 수 있습니다. 프록시 계정 전체에서 앱을 실행하고 로컬 창에 X 창 결과를 표시 할 수 있습니다!

팁 : xauth 목록 확인 ...에서 매직 쿠키가 반영된 경우.


0

이것을 주석으로 추가하지만 충분한 담당자가 없습니다. sorin 의 솔루션에 한 줄을 더 추가하면 나에게 도움이되었습니다.

ssh 설정 파일을 열고 vim ~/.ssh/config 다음 줄을 추가하십시오 :

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

다음을 통해 xauth위치를 다시 확인할 수 있습니다 .

which xauth

xauth 위치가 원격 컴퓨터마다 다르기 때문에 이것이 실제로 작동하는지 확실하지 않습니다. MacOS와 비슷하지만 Linux는 다른 위치에 있습니다. 나는 거의 사용자를 사용하지 않기 때문에 대부분 ForwardX11을 완전히 비활성화하기 시작했습니다.
— 소린
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.