실패한 strace
원격 시스템에서를 실행 xauth
하면 무슨 일이 일어나고 있는지 표시됩니다 xauth
.
예를 들어
$ strace xauth list
stat("/home/sam/.Xauthority-c", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
open("/home/sam/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({2, 0}, 0x7fff6c4430e0) = 0
open("/home/sam/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({2, 0}, 0x7fff6c4430e0) = 0
open("/home/sam/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
그래서이 xauth
파일을 열려고 시도하고 그것은 이미 존재합니다. 범인 파일은 /home/sam/.Xauthority-c
입니다. 원격 시스템에이 파일이 있는지 확인할 수 있습니다.
$ ls -l .Xauthority*
-rw------- 1 sam sam 55 Jul 12 22:04 .Xauthority
-rw------- 1 sam sam 0 Jul 12 22:36 .Xauthority-c
-rw------- 1 sam sam 0 Jul 12 22:36 .Xauthority-l
수정
그것은 밝혀졌다. 해당 파일은의 잠금 파일 .Xauthority
이므로 간단히 제거하면 문제가 해결됩니다.
$ rm -fr .Xauthority-*
파일이 삭제 된 상태에서 SSH 연결을 종료 한 다음 다시 연결하십시오. 이렇게하면 xauth
성공적으로 다시 실행할 수 있습니다.
$ ssh -t skinner ssh sam@blackbird
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-44-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Sun Jul 12 22:37:54 2015 from skinner.bubba.net
$
이제 우리는 xauth list
문제없이 X11 응용 프로그램 을 실행할 수 있습니다.
$ xauth list
blackbird/unix:10 MIT-MAGIC-COOKIE-1 cf01f793d2a5ece0ea58196ab5a7977a
GUI
$ xeyes
문제를 해결하기위한 대체 방법
나는 xauth : 권한 파일 잠금 오류 .Xauthority [linux, ssh, X11] 라는 제목의이 게시물 을 발견 xauth -b
했다. xauth
의 맨 페이지가 이것을 백업하는 것 같습니다.
-b This option indicates that xauth should attempt to break any
authority file locks before proceeding. Use this option only to
clean up stale locks.
참고 문헌