"잘못된 인증으로 인해 거부 된 X11 연결"을 디버깅하는 방법


10

SSH를 통한 X 전달에 문제가 있습니다. 나는 오랜 세월 동안 싸웠지 만 아무도 도울 수 없습니다.

나는 지금 다른 전술을 취하고있다. 오류를 어떻게 디버깅하는지 알고 싶습니다.

어떤 로그를 찾아야합니까, 어떤 추가 플래그를 설정해야합니까 (-v 등) 무엇을 찾아야합니까?

추가 편집 :

퍼티에 서버에 로그인하고을 시도하면 다음 xeyes과 같은 결과가 나타납니다.

PuTTY X11 프록시 : 잘못된 인증 프로토콜 시도 오류 : 디스플레이를 열 수 없음 : localhost : 10.0

xauth generate $DISPLAY내가 얻는 다면 :

PuTTY X11 프록시 : 잘못된 인증 프로토콜 시도 xauth : (argv) : 1 : "localhost : 10.0"디스플레이를 열 수 없습니다.


에서 다른 일에서 귀하의 질문에 서로 다른 증상을 설명합니다. 여전히 "디스플레이를 열 수 없습니다"라는 문제가 있습니까? 이 문제를 해결하고 해당 질문에 대한 답변 중 하나가 도움이 되었다면 도움을 준 사람에게 보상하는 답변으로 선택해야합니다.
Kenster

동의, 그것은 지금 다른 오류입니다, 나는 그 질문을 닫았습니다.
wkdmarty

이 답변이 서버에 적용 되는지 확인하십시오 .
Kenster

켄 스터, 서버에 rc 파일이 없어서 하나를 만들고 코드를 붙여 넣었습니다. 차이 없음.
wkdmarty

PuTTY 로그에서 이것은 SSH 로그인 후 x 프로그램을 실행하려고 시도한 후에 나타납니다. 2014-09-01 15:16:38 127.0.0.1:59566에서 X11 연결 요청을 수신했습니다. 2014-09-01 15:16:38 X11 전달 연결을 성공적으로 완료했습니다. 채널 닫기 2014-09-01 15:16:38 전달 된 X11 연결이 종료 됨
wkdmarty

답변:


13

내 솔루션은 단계별로 :

1) -X 원격 호스트 로그인 루트 옵션을 사용하여 로그인

$ ssh -X root@192.168.1.39

2) 기존 .Xauthority 파일이 있는지 확인

[root @ localhost ~] # ls -al
[root @ localhost ~] # vim .Xauthority

3) .Xauthority 파일을 다른 사용자의 디렉토리에 복사

[root @ localhost ~] # cp .Xauthority / home / oracle /
cp :`/home/oracle/.Xauthority '를 덮어 쓰시겠습니까? 와이

4)이 파일에 대한 권한 설정

[root @ localhost ~] # chown oracle : oinstall .Xauthority
[root @ localhost ~] # chmod 0600 .Xauthority

5) 로그인 오라클 사용자

[root @ localhost ~] # su-오라클

6) 로컬 호스트의 디스플레이 설정 : 10.0

[oracle @ localhost ~] $ echo $ DISPLAY
로컬 호스트 : 10.0
[oracle @ localhost ~] $ ls -al

7) 기존 xauth 쿠키 목록

[oracle @ localhost ~] $ xauth 목록
localhost.localdomain / unix : 11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
localhost.localdomain / unix : 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8) 추가

[oracle @ localhost ~] $ xauth add localhost.localdomain / unix : 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9) 시험

[oracle @ localhost ~] $ xclock

그들이 봉사하기를 바랍니다! w


2
xauth add .... 부분은 트릭입니다
Wei

3 단계와 4 단계 : 나를 위해 속임수
kiltek

6

SSH 서버에 xauth도구가 설치되어 있고 ~/.Xauthority파일이 쓰기 가능한지 확인하십시오 . (존재하지 않는 한 xauth만들 수도 있습니다.)

xauth 데이터가 업데이트되고 있는지 확인하십시오.

server$ xauth list

더미 xauth 데이터를 수동으로 추가 (다시 SSH 서버에서)하고 xauth문제가 있는지 확인하십시오 (예 : 잠금 파일을 작성할 수 없거나 Xauthority 파일 자체 수정).

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

필요한 경우 아래에서 다시 실행하십시오 strace.

LogLevel DEBUG2서버 구성 ( /etc/ssh/sshd_config)에서 설정하거나 디버그 모드에서 sshd를 직접 시작 하여 디버그 모드에서 SSH 서비스를 실행하십시오 .

server$ sshd -rddp 12234

(이 예에서는 12234연결해야하는 임시 SSH 포트입니다. 사용 가능한 포트가 있습니다.)


감사합니다. 서버의 Xauth는 .Xauthority 파일에 쓸 수 있습니다. 그러나 무엇을 설정해야합니까? 서버 = N40L, 클라이언트 = Lin001. N40L의 xauth 목록에 localhost : 10 MIT-MAGIC-COOKIE-1 {Lin001'sHexKey}에 대한 항목이 표시되어야합니까?
wkdmarty

@wkdmarty : 그렇습니다. sshd는 : 10 (또는 : 11, : 12 ...) 표시에 해당하는 TCP 포트에서 수신 대기하며 "localhost : 10"으로 표시됩니다. 그러나 16 진수 키에 관해서는, 그것이 같은 키 를 사용해야하는지 정말로 모르겠습니다 – ssh가 실제로 새로운 키를 생성하고 프록시 역할을한다고 생각합니다 ...
user1686

좋아, 0.0.0.0:6011이 듣고 있음을 알 수 있습니다. 내 DISPLAY 변수는 N40L : 11.0이며, 잘못 생각합니다. 따라서 DISPLAY = localhost : 10.0으로 변경하겠습니다. 아직 오류가 발생했습니다. SSH 연결 에서이 줄을 알았습니다 : debug2 : x11_get_proto / usr / bin / xauth list : 0.0 2> / dev / null SSH 연결 로깅을 본 곳 마다이 줄은 다릅니다 ... 키 생성을 보여주지 않습니다. : 0.0.?
wkdmarty

@wkdmarty : 일반적으로 sshd는 $ DISPLAY를 올바른 값으로 설정해야합니다. 포트 6011은 어쨌든 10이 아니라 디스플레이 11에 해당합니다.
user1686

1
"내 DISPLAY 변수는 N40L : 11.0 ...이므로 변경하겠습니다". 무뚝뚝하게하려면 DISPLAY를 그대로 두십시오. ssh가 X11 포워딩을 설정하면 DISPLAY가 작동하는 값으로 설정됩니다. ssh가 설정 한 값을 재정의하면 문제 해결 프로세스가 더 어려워집니다.
Kenster

3

작동하고 있습니다. ㅋ.

드디어.

시스템이 아니라는 것을 알게 된 후, 테스트 사용자 (x 포워딩이 "상자 밖으로"작동)를 추가하여 "파손 된"사용자를 처녀 화하기 위해 .bash * 시작 파일을 복사하기 시작했다고 생각했습니다.

파일이 다르지 않았으므로 다음에는 users .ssh 디렉토리를 삭제했습니다. ssh 's에 들어갔을 때 "서버가 키를 거부했습니다"라는 메시지가 들렸지 만 비밀번호를 사용하여 로그인 할 수있었습니다. 일단 로그인하면 완벽하게 전달할 수 있습니다.

이제 키를 다시 설정하고 그 키가 작동하는지 확인할 것입니다. 그런 다음 정상으로 돌아옵니다.


이것은 나에게도 효과가있었습니다. 나는 다른 모든 방법을 시도했지만, 문제는 분명히 열쇠에 놓여 있습니다.
Auxiliary

1

이 문제를 일으킬 수있는 또 하나의 일은 ~/.ssh/rc서버에 파일 이 존재한다는 것입니다 . 문제를 해결하려면 삭제하거나 이름을 바꾸십시오.


1
당은 man sshd, SSHD는 실행 ~/.ssh/rc대신 xauth@PimpJuiceIT.
Ken Jackson

감사합니다! 자세한 내용은 docstore.mik.ua/orelly/networking_2ndEd/ssh/…를 참조하십시오 . rc 파일 내에서 xauth를 시작하는 적절한 명령을 추가 할 수는 있지만 찾지 못했습니다.
매트 B.

0

rm ~/.Xauth* 그런 다음 다시 연결하십시오.

이것은 나를 위해 작동합니다. 자세한 내용

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