X11 전달이 작동하지 않음 - 오류: 디스플레이를 열 수 없습니다: localhost:11.0

X11 전달이 작동하지 않음 - 오류: 디스플레이를 열 수 없습니다: localhost:11.0

LM 17 Xfce OpenSSH_6.6.1p1 우분투-2ubuntu2

여기저기서 인터넷 검색을 해보아도 제대로 작동하지 않는 것 같습니다. 이 오류가 계속 발생합니다.

$ xlogo
Error: Can't open display: localhost:10.0

디버그 전달 x11 및 sshd 일반 인스턴스를 사용하여 두 가지 유형의 연결을 모두 시도했습니다.

ssh -Y remotehost -p 2500  
ssh -X remotehost -p 2500 

서버 구성에서는 x11 전달이 허용됩니다.
디버그에서 새 sshd 인스턴스로 테스트할 때 연결할 때 이 내용이 표시됩니다. 디버깅과 관련된 유일한 부분은 다음과 같습니다.

debug1: channel 1: new [X11 inet listener]
debug1: channel 2: new [X11 inet listener]  

디스플레이가 설정되었습니다

$ echo $DISPLAY
localhost:10.0

사용자는 sudo 액세스 권한이 있는 표준 사용자입니다. 그렇지 않으면 문제가 없습니다(모든 cli가 잘 작동합니다.)

또한 저는 멀티플렉싱 연결을 사용하지 않고 있으며
직접 연결할 때 x11 전달(ssh -X 127.0.0.1)을 사용할 수 있습니다.
연결하는 동안 ssh -v를 사용하면 오류가 발생할 때 더 이상 유용한 피드백을 제공하지 않습니다.
제가 시도해 볼 수 있는 것을 놓친 경우 알려 주시기 바랍니다. 혼란스러워요.

편집하다:

$ netstat -l | grep 6010

tcp        0      0 ip6-localhost:6010      *:*                 LISTEN     
tcp6       0      0 ip6-localhost:6010      [::]:*              LISTEN  

또한 서버에서 ssh -X 127.0.0.1을 실행했는데 다음이 출력되었습니다.

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

xauth 목록. 이 개인 정보에 관심을 가져야 합니까? 내가 atm에 무엇을 게시했는지 잘 모르겠습니다.

remotehostname/unix:14  MIT-MAGIC-COOKIE-1  70f068c8dd2431088bcxxxxxxxxx
remotehostname/unix:13  MIT-MAGIC-COOKIE-1  be500209ccb9fb769eexxxxxxxxx
remotehostname/unix:12  MIT-MAGIC-COOKIE-1  01fc30e4887501602ebxxxxxxxxx
remotehostname/unix:11  MIT-MAGIC-COOKIE-1  d04f849725f71070095xxxxxxxxx
remotehostname/unix:10  MIT-MAGIC-COOKIE-1  42e99c898ef9aa295b4xxxxxxxxx

localhost를 먼저 넣도록 /etc/hosts 파일을 변경했습니다. 이제 추가 메시지를 받았습니다. 도움이 되는지 확인하기 위해 재부팅도 했습니다.

127.0.0.1 localhost remotehostname localhost.localdomain
::1 localhost ip6-localhost ip6-loopback


X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0

~/.Xauthority 파일을 삭제했는데 자동으로 생성되지 않는 것을 확인했습니다. 내 Raspberry Pi에서 이것을 테스트했는데 경고가 표시되고 ~/.Xauthority 파일이 생성되었습니다. 원격 호스트에서는 이 문제가 발생하지 않습니다. 그러나 그것을 생성할 수 있는 권한은 괜찮습니다.

답변1

$DISPLAY설정이 올바르고 파일이 생성되지 않았기 때문에 ~/.XauthorityX11 포워딩을 고려했지만 xauth실행되지 않는 것일 수 있습니다. 한 가지 이유는 경로에 있지 않기 때문일 수 있습니다(Mac OS X에서는 이 문제가 있었지만 Linux에서는 이상할 것입니다). 파일을 만들어 직접 이 작업을 수행할 수도 있습니다 ~/.ssh/rc. 예를 들어 다음이 있습니다.

if [ -n "$DISPLAY" ]; then
  echo "DISPLAY: $DISPLAY" >&2
  if read proto cookie; then
    if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
      echo add unix:`echo $DISPLAY | cut -c11-` $proto $cookie
    else
      echo add $DISPLAY $proto $cookie
    fi | $HOME/.ssh/xauth.wrapper -q -
  fi
fi

그 중에는 파일 잠금을 구현하는 ~/.ssh/xauth.wrapper래퍼가 있습니다. 그러나 만일의 경우에는 경로 이름이나 전체 경로 이름을 사용할 수 있습니다. 이는 sshd(8) 매뉴얼 페이지("SSHRC" 섹션 참조)에 설명된 내용과 매우 유사합니다.xauth~/.Xauthorityxauthxauth

실수하지 않도록 조심하세요.

관련 정보