.Xauthority ファイルが書き込み不可の場合の Xauth/X11 ssh 転送エラー

.Xauthority ファイルが書き込み不可の場合の Xauth/X11 ssh 転送エラー

ログインするとssh -Y remotehost次のエラー メッセージが表示されます。

/usr/bin/xauth: /home/hlovdal/.Xauthority は書き込み不可なので、変更は無視されます

また、xclock などの起動に失敗します。エラー メッセージにもかかわらず、.Xauthority ファイルの権限に問題はありません。

(hlovdal) remotehost:~>xclock
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0
(hlovdal) remotehost:~>ls -l /home/hlovdal/.Xauthority
-rw-------. 1 hlovdal hlovdal 70 Jul 25 23:30 /home/hlovdal/.Xauthority
(hlovdal) remotehost:~>

原因は何でしょうか?

(これは私の 2 台のラップトップの間で、これまで何百回もやり取りしてきました。)


アップデート:

さらにデバッグを進めると、xauth は再び .Xauthority に書き込めないと報告しました。このファイルはユーザーが書き込み可能なので、これは意味をなさないのですが、好奇心から strace を実行して、正確に何をしようとしたのか確認しました。

(hlovdal) remotehost:~>xauth list
xauth:  /home/hlovdal/.Xauthority not writable, changes will be ignored
(hlovdal) remotehost:~>strace -oout -f -s9000 xauth list
xauth:  error in locking authority file /home/hlovdal/.Xauthority
(hlovdal) remotehost:~>tail out
16634 brk(0xf03000)                     = 0xf03000
16634 brk(0)                            = 0xf03000
16634 rt_sigaction(SIGINT, {0x4050d0, [INT], SA_RESTORER|SA_RESTART, 0x3957035350}, {SIG_DFL, [], 0}, 8) = 0
16634 rt_sigaction(SIGTERM, {0x4050d0, [TERM], SA_RESTORER|SA_RESTART, 0x3957035350}, {SIG_DFL, [], 0}, 8) = 0
16634 rt_sigaction(SIGHUP, {0x4050d0, [HUP], SA_RESTORER|SA_RESTART, 0x3957035350}, {SIG_DFL, [], 0}, 8) = 0
16634 rt_sigaction(SIGPIPE, {0x4050d0, [PIPE], SA_RESTORER|SA_RESTART, 0x3957035350}, {SIG_DFL, [], 0}, 8) = 0
16634 stat("/home/hlovdal/.Xauthority-c", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
16634 open("/home/hlovdal/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EEXIST (File exists)
16634 write(2, "xauth:  error in locking authority file /home/hlovdal/.Xauthority\n", 66) = 66
16634 exit_group(1)                     = ?
(hlovdal) remotehost:~>ls -l .Xauthority*
-rw-------. 1 hlovdal hlovdal 70 Jul 25 23:30 .Xauthority
-rw-------. 2 hlovdal hlovdal  0 Jul 26 01:26 .Xauthority-c
-rw-------. 2 hlovdal hlovdal  0 Jul 26 01:26 .Xauthority-l
(hlovdal) remotehost:~>

これは、.Xauthority-c の作成に失敗するために xauth が失敗する理由をよりよく説明しています。ただし、これら 2 つのおそらく古いファイルを削除しても役に立ちません。これらのファイルは、次の ssh ログイン時に再作成されます。リモートホストの syslog には、ssh ログインに関連する次の内容が含まれています。

sshd[17551]: Accepted publickey for hlovdal from x.x.x.x port 36545 ssh2
sshd[17552]: fatal: mm_request_receive: read: Connection reset by peer
sshd[17551]: pam_unix(sshd:session): session opened for user hlovdal by (uid=0)

この mm_request_receive エラー メッセージはこれまで発生したことがないので、さらにデバッグするための手がかりがあると思われます。

答え1

Ubuntu 12.04 でホーム フォルダーを同期した後、同じ問題が発生しました。次のコマンドを使用して解決しました。

rm ~/.Xaut* 

その後、ログアウトして再度ログインしました。次の警告が表示されました。

/usr/bin/xauth:  file /home/iranice/.Xauthority does not exist

その後、Linux は.Xauthority自動的にファイルを作成しました。ログアウトして再度ログインすると、すべて正常になりました。

答え2

私の場合はこのエラーが発生しました:

/usr/bin/xauth: error in locking authority file /home/toto/.Xauthority

/home パーティションがいっぱいだったためです。

このパーティションのスペースを解放すると、この問題は解決しました。

strace コマンドは、strace -oout -f -s9000 xauth list問題の特定に役立ちました。

答え3

これはすでに報告されている既知の問題のようです。Redhat の Bugzillaなので、この質問を「閉じて」、そのバグレポートへの報告を続けます。

答え4

私の場合、問題は権限の問題でした。ファイルを削除しても.Xauthority、再作成され、書き込み不可でした。そこで、所有者を変更したらうまくいきました。

sudo chown user:user .Xauthority

ファイルはデフォルトでルート用に作成された可能性があります。

関連情報