Suponha que você queira que a força bruta faça uma conexão com X ...
Vamos supor que você já esteja executando seus comandos no servidor (onde o X é executado); caso contrário, faça com que funcione primeiro e depois use o 'ssh -X user @ server) do cliente depois;).
Pode haver várias maneiras de executar os comandos xauth, por exemplo, você pode estar usando 'sudo', mas isso pode perder ou alterar variáveis de ambiente. As seguintes variáveis de ambiente precisam ser preservadas: DISPLAY e XAUTHORITY. Para testar se esse é o caso, você pode executar 'echo $ XAUTHORITY' da mesma maneira que executa seus comandos, mas certifique-se de não expandir as variáveis de ambiente antes de executar esses comandos. Por exemplo, tente: sudo bash -c 'echo "$ XAUTHORITY"' para ver o que realmente é XAUTHORITY depois de executar o seu sudo (se ele desaparecer, talvez seja necessário adicionar algo ao seu arquivo sudoers, consulte outro local).
Eventualmente, execute o seguinte comando como o usuário com o qual você deseja acessar, no servidor:
xauth info
Isso mostrará o 'arquivo de autoridade' que será usado (/root/.Xauthority por padrão, para root ou algo como /home/theuser/.Xauthority). Se ele mostrar o arquivo .Xauthority correto, não será necessário se preocupar com a variável de ambiente XAUTHORITY (na verdade, eu não saberia quando não apareceria, exceto se você quiser manipular um local não padrão desse arquivo )
Remova esse arquivo (se ele existir):
rm /root/.Xauthority
Substitua /root/.Xauthority
pelo arquivo XAUTHORITY correto para o seu caso.
Recrie-o, mas vazio (isso é necessário para muitos comandos):
touch /root/.Xauthority
Nesse ponto, você receberá o erro No protocol especificado , mesmo se você tiver MIT-MAGIC-COOKIE-1 inválido antes. Encontre o arquivo de autoridade que o servidor X está usando no momento:
ps aux | grep Xorg
Isso deve mostrar algo como:
root 1153 0.0 1.0 149560 44464 tty7 Ss+ dec02 0:00 /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711} -background none -noreset -displayfd 17 vt7
O nome do arquivo depois -auth
é o que você precisa no próximo comando. Execute isso como root:
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
Isso lista uma chave hexadecimal de 32 dígitos. Por exemplo, a saída poderia ser:
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
Use isso para gerar seu arquivo .Xauthority (como usuário que precisa fazer login novamente):
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
substitua 'c0eaf749aa252101a0f57d5087089db7' pelo que foi retornado pelo comando list para você. Agora, a sua .Xauthority deve ter o tamanho de 51 bytes e você pode se conectar ao servidor X (novamente).