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:
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?
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.
Essayer
xhost +local:
avant de l'exécuter.
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.
Celui-ci a fonctionné pour moi. Je laisse donc cette réponse ici.
export DISPLAY=:1.0
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.
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.