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

21

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. "Export DISPLAY =: 0" utilisé 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 tout le 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?

CS6394
la source
2
Existe-t-il un serveur X en cours d'exécution sur la console du serveur? Je ne comprends pas où vous voulez que la sortie du programme soit affichée. Votre procédure est clairement erronée car vous obtenez le cookie de l'hôte local mais vous ne l'affichez pas sur l'hôte local. S'il y a un serveur X en cours d'exécution sur la machine distante et que c'est là que vous voulez que le programme soit affiché, voir unix.stackexchange.com/questions/10121/…
Gilles 'SO- arrête d'être méchant'

Réponses:

13

La valeur que vous utilisez DISPLAYest incorrecte: si vous ne souhaitez pas utiliser le transfert SSH X, vous DISPLAYdevez indiquer l'adresse IP de votre serveur X (le bureau sur lequel vous souhaitez afficher les programmes). Sur la télécommande, exécutez

export DISPLAY=desktop:0

remplacer desktoppar 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.

Stephen Kitt
la source
1
Cela ignore le problème XAUTHORITY, qui est à l'origine du message d'erreur réel dans la ligne d'objet.
kiko
7

Essayer

xhost +local: 

avant de l'exécuter.

Jeff Schaller
la source
ça a fait l'affaire. Merci, je pense que c'est la réponse la plus courte!
loves.by.Jesus
1

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

 export DISPLAY=:1.0
PSN
la source
0

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 @PSN answer ( export DISPLAY=:1.0).

fwiw je suis sur debian 9.

marrco
la source