web-dev-qa-db-fra.com

«Clé MIT-MAGIC-COOKIE-1 non valide» lors de la tentative d'exécution du programme à distance

J'essaie d'exécuter une application (ParaView) en mode client-serveur avec son rendu graphique effectué à l'extrémité distante (serveur). J'utilise SSH comme moyen de me connecter au serveur, mais je ne souhaite pas utiliser le transfert X car cela ralentit le processus de rendu.

Cependant, chaque fois que j'essaie d'ouvrir l'application sur l'écran du serveur, j'obtiens une erreur à cet effet:

Invalid MIT-MAGIC-COOKIE-1 keyError: cannot open display ':0'

J'ai mené des recherches approfondies sur cette question et j'ai déjà essayé la procédure suggérée suivante en vain:

  1. "Liste xauth" utilisée pour obtenir la valeur MIT-MAGIC-COOKIE-1 pour l'affichage de mon hôte local.
  2. Connecté à l'hôte distant via ssh.
  3. Utilisé "export DISPLAY =: 0" sur l'hôte distant.
  4. Sur l'hôte distant, utilisez "xauth add" pour remplacer la valeur du cookie pour l'affichage de l'hôte distant par celle de l'hôte local.

Je suis convaincu que c'est la bonne procédure, mais que je ne transfère tout simplement pas les bons cookies aux bons écrans.

Encore une fois, je voudrais pouvoir utiliser ssh pour effectuer l'ouverture des applications sur l'écran de l'ordinateur distant. Idéalement, j'aimerais que l'ensemble du processus se fasse via xauth plutôt que xhost, et encore une fois, je n'ai pas besoin d'utiliser le transfert X. Que pourrais-je manquer ou faire mal?

22
CS6394

La valeur que vous utilisez pour DISPLAY est incorrecte: si vous ne voulez pas utiliser le transfert SSH X, DISPLAY doit indiquer l'adresse IP de votre serveur X (le bureau que vous souhaitez afficher programmes activés). Sur la télécommande, exécutez

export DISPLAY=desktop:0

en remplaçant desktop par votre nom d'hôte local ou votre adresse IP. Vous devrez peut-être également modifier la configuration de votre serveur X pour autoriser les connexions IP distantes.

13
Stephen Kitt

Essayer

xhost +local: 

avant de l'exécuter.

9
user175477

Pour moi, l'erreur était:

Invalid MIT-MAGIC-COOKIE-1 keyxcb_connection_has_error() returned true
Invalid MIT-MAGIC-COOKIE-1 keyERROR: Unable to create GUI. Exiting

J'ai joué avec .Xauthority mais cela n'a fait que masquer la partie "cookie MIT", pas l'erreur xcb_connection. En fin de compte, cela a fonctionné simplement en utilisant la réponse @PSN (export DISPLAY=:1.0).

fwiw je suis sur debian 9.

1
marrco

Celui-ci a fonctionné pour moi. Je laisse donc cette réponse ici.

 export DISPLAY=:1.0
1
PSN

Le Invalid MIT-MAGIC-COOKIE-1 key partie doit être une erreur (non) distincte. Je l'obtiens dans le cas de travail normal de démarrage de tout programme graphique (même gitk).

Quelqu'un a juste oublié de le terminer par une nouvelle ligne, alors faites comme s'il s'agissait d'une ligne distincte.

0
user2394284

Cela pourrait être l'une des raisons pour lesquelles vous pourriez obtenir l'erreur suivante:

Touche MIT-MAGIC-COOKIE-1 non valide Erreur: impossible d'ouvrir l'affichage:: 1

Assurez-vous que vous exécutez un processus GUI à partir du même utilisateur auquel appartient le processus vncserver.

Par exemple:

venkat@home-laptop:~/Downloads/$ ps -eaf | grep vnc
venkat    3504     1  0 Apr06 ?        00:09:52 /usr/bin/Xvnc :1 -auth /run/user/1000/gdm/Xauthority -desktop home-laptop:1 (venkat) -fp /usr/share/fonts/X11//misc,/usr/share/fonts/X11//Type1 -geometry 1024x768 -pn -rfbauth /home/venkat/.vnc/passwd -rfbport 5901 -rfbwait 30000
venkat   10595  8391  0 02:33 pts/5    00:00:00 grep --color=auto vnc
venkat@home-laptop:~/Downloads/$
venkat@home-laptop:~/Downloads/$
venkat@home-laptop:~/Downloads/$ Sudo -i
root@home-laptop:~#
root@home-laptop:~# xclock
Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :1
root@home-laptop:~#
root@home-laptop:~#
root@home-laptop:~# exit
logout
venkat@home-laptop:~/Downloads/$
venkat@home-laptop:~/Downloads/$ xclock

Exécutez donc le serveur vnc et le processus gui en tant que même utilisateur que possible à partir du terminal ssh local.

0
S.K. Venkat