SSH経由でホストに接続しようとすると、次のメッセージが表示されましたxauth
。
/usr/bin/xauth: ロック権限ファイル /home/sam/.Xauthority がタイムアウトしました。
メモ:SSH接続を介してリモートでX11 GUIを表示したいので、ファイルを正常に作成できるはずxauth
です$HOME/.Xauthority
が、このメッセージに示すように明らかにそうではありません。
xeyes
X11ベースのアプリケーションを実行すると、次のメッセージが表示されます。
$ xeyes
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0
この問題をどのように解決できますか?
ベストアンサー1
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.