Supposons que vous vouliez forcer une connexion brute avec X ...
Supposons que vous exécutez déjà vos commandes sur le serveur (où X s'exécute), sinon faites en sorte que cela fonctionne d'abord, puis utilisez 'ssh -X user @ server) à partir du client par la suite;).
Il peut y avoir plusieurs façons d'exécuter les commandes xauth, par exemple, vous pouvez utiliser «sudo», mais cela peut perdre ou modifier les variables d'environnement. Les variables d'environnement suivantes doivent être préservées: DISPLAY et XAUTHORITY. Pour tester si c'est le cas, vous pouvez exécuter 'echo $ XAUTHORITY' de la même manière que vous exécutez vos commandes, mais assurez-vous de ne pas étendre les variables d'environnement avant d'exécuter ces commandes. Par exemple, essayez: sudo bash -c 'echo "$ XAUTHORITY"' pour voir ce qu'est vraiment XAUTHORITY après avoir exécuté votre sudo (s'il disparaît, vous devrez peut-être ajouter quelque chose à votre fichier sudoers, voir ailleurs).
Finalement, exécutez la commande suivante en tant qu'utilisateur avec lequel vous souhaitez accéder, sur le serveur:
xauth info
Cela montrera le «fichier d'autorité» qui sera utilisé (/root/.Xauthority par défaut, pour root, ou quelque chose comme /home/theuser/.Xauthority). S'il affiche le fichier .Xauthority correct, vous n'avez pas à vous soucier de la variable d'environnement XAUTHORITY en fait (en fait, je ne saurais pas quand il ne le ferait pas, sauf si vous voulez manipuler un emplacement non standard de ce fichier ).
Supprimez ce fichier (s'il existe même):
rm /root/.Xauthority
Remplacez-le /root/.Xauthority
par le fichier XAUTHORITY correspondant à votre cas.
Recréez-le, mais vide (cela est nécessaire pour de nombreuses commandes):
touch /root/.Xauthority
À ce stade, vous obtiendrez l' erreur Aucun protocole spécifié , même si vous avez déjà obtenu MIT-MAGIC-COOKIE-1 non valide . Recherchez le fichier d'autorité que le serveur X utilise actuellement:
ps aux | grep Xorg
Cela devrait montrer quelque chose comme:
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
Le nom du fichier après -auth
est celui dont vous avez besoin dans la commande suivante. Exécutez ceci en tant que root:
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
Cela répertorie une clé hexadécimale à 32 chiffres. Par exemple, la sortie pourrait être:
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
Utilisez-le pour générer votre fichier .Xauthority (en tant qu'utilisateur qui doit se reconnecter):
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
remplacez «c0eaf749aa252101a0f57d5087089db7» par ce qui vous a été renvoyé par la commande list. Votre .Xauthority devrait maintenant avoir une taille de 51 octets et vous pouvez vous connecter au serveur X (à nouveau).