Erros de encaminhamento ssh Xauth/X11 com arquivo .Xauthority não gravável

Erros de encaminhamento ssh Xauth/X11 com arquivo .Xauthority não gravável

Ao fazer login ssh -Y remotehostrecebo a seguinte mensagem de erro:

/usr/bin/xauth: /home/hlovdal/.Xauthority não gravável, as alterações serão ignoradas

E xclock e similares não iniciam. Não há nada de errado com as permissões do arquivo .Xauthority, apesar da mensagem de erro.

(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:~>

Qual pode ser a causa aqui?

(Isso é entre meus dois laptops, onde já andei de um lado para o outro centenas de vezes antes.)


Atualizar:

Durante a depuração adicional, o xauth reclamou novamente que não poderia gravar em .Xauthority. Isso não faz sentido, pois o arquivo pode ser gravado pelo meu usuário e, curiosamente, executei o strace para ver exatamente o que ele tentou fazer.

(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:~>

Isso explica melhor por que o xauth falha, pois não consegue criar .Xauthority-c. Mas remover esses dois arquivos provavelmente obsoletos não ajuda, eles são recriados no próximo login do ssh. syslog em remotehost contém o seguinte relacionado ao login 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)

Esta mensagem de erro mm_request_receive nunca ocorreu antes, então acho que há uma pista para depuração adicional.

Responder1

Tive o mesmo problema depois de sincronizar minha pasta pessoal no Ubuntu 12.04. Eu resolvi isso usando os seguintes comandos:

rm ~/.Xaut* 

Então eu saí e entrei novamente. O seguinte aviso surgiu:

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

Depois disso, o Linux criou .Xauthorityo arquivo automaticamente. Saí e entrei novamente e deu tudo certo.

Responder2

Para mim tive este erro:

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

porque minha partição /home estava cheia.

Liberar algum espaço nesta partição resolveu esse problema.

O comando strace: strace -oout -f -s9000 xauth listfoi útil na identificação do problema.

Responder3

Este parece ser um problema já conhecido relatado emBugzilla de Redhat, então vou "fechar" esta questão e continuar reportando esse relatório de bug.

Responder4

Para mim, o problema era uma questão de permissões. Mesmo se você excluiu o arquivo .Xauthority, ele foi recriado e não era gravável. Então mudei o proprietário e funcionou:

sudo chown user:user .Xauthority

Pode ser que o arquivo tenha sido criado para root por padrão.

informação relacionada