Xauthority Mini Como
Nos sistemas GNU / Linux que executam um servidor de exibição X11, o arquivo ~/.Xauthority
armazena cookies de autenticação ou chaves criptográficas usadas para autorizar a conexão com a exibição. Na maioria dos casos, o mecanismo de autenticação é um cookie simétrico que é referido como Magic Cookie
. O mesmo cookie é usado pelo servidor e pelo cliente.
Cada cookie de autenticação X11 está sob o controle do usuário autenticado do sistema individual. Como o cookie de autenticação é armazenado como um token de segurança de texto simples, as permissões no arquivo ~/.Xauthority
devem ser rw
apenas para o proprietário, 600
no formato octal. No entanto, as permissões no arquivo de autorização não são aplicadas.
Um usuário pode listar, exportar, criar ou excluir cookies de autenticação usando o programa xauth
. O comando a seguir criará um cookie de autorização para DISPLAY 32
.
xauth add localhost:32 - 'mcookie'
A criação manual e a manipulação de cookies geralmente não são necessárias ao usar o encaminhamento X11 com ssh
, porque ssh
inicia um proxy X11 na máquina remota e gera automaticamente cookies de autorização na exibição local. No entanto, para determinadas configurações, o cookie de autorização pode precisar ser criado manualmente e copiado para a máquina local.
Isso pode ser feito em uma sessão ssh
e, em seguida, use scp
para copiar o cookie.
ssh
na máquina remota:
ssh -XY user@remote
Verifique se um cookie de autorização está presente para a exibição atual do X11
echo $DISPLAY
xauth list
Se não houver uma variável de ambiente chamada $DISPLAY
, o proxy X11 não foi iniciado corretamente. É importante observar que DISPLAY 0
normalmente é usuários registrados localmente e só está executando se um xserver tiver sido iniciado localmente por meio de xinit
. Não há necessidade de um servidor X11 iniciado localmente para que o encaminhamento do X11 funcione através de ssh
.
Se houver um conjunto de variáveis de ambiente $DISPLAY
, mas nenhum cookie de autorização correspondente para esse número de exibição, você poderá criar um:
xauth add $DISPLAY - 'mcookie'
E verifique se agora existe um cookie:
xauth list
Você pode copiar esse cookie e mesclá-lo na máquina local:
user@remote> xauth nextract ~/xcookie $DISPLAY
user@remote> exit
user@local> scp user@remote:~/xcookie ~/xcookie
user@local> xauth nmerge ~/xcookie
E, em seguida, verifique se o cookie foi instalado:
user@local> xauth list
Experimente sua conexão ssh de encaminhamento do X11.
Notas sobre ~/.Xauthority
~/.Xauthority
é um arquivo binário que contém todas as informações de autorização para cada exibição que o usuário pode acessar. Cada registro é delimitado pelos dois bytes 0x0100
. Cada campo é precedido por uma contagem hexidêmica do número de bytes do campo. Todo o texto é codificado em ASCII hexadecimal. A tabela a seguir é a estrutura básica da configuração mais comum de uma autorização do MIT MAGIC COOKIE:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0100 0004 61616161 0002 3435 0012 4d49542d4d414749432d434f4f4b49452d31 0010 c0bdd1c539be89a2090f1bbb6b414c2c
----------------- ----------- ------------------ ------------ ---------------------- ------------- -------------------------------------- ------------ ---------------------------------------
start-of-record 0xNumBytes 0xASCII Hostname 0xNumBytes 0xASCII Display Num 0xNumBytes 0xASCII Auth Type 0xNumBytes 0xkey
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A linha superior é recuperável do arquivo ~/.Xauthority
por meio do comando xauth nlist
. É claro que o seu arquivo de autorização terá informações diferentes do meu exemplo.
Se as Extensões de Segurança estiverem em uso com o servidor X11, há várias opções de configuração para cada linha de autorização, incluindo a autorização limitada por tempo por cookie.