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.