Je me suis connecté à un serveur distant et j'essaie d'afficher une application x (par exemple firefox). mais un message d'erreur apparaît. ce qui suit sont mes tentatives pour ouvrir Firefox
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$ exit
logout
Connection to 143.248.146.204 closed.
Black@Black-PC ~
$ ssh -Y kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$
J'ai utilisé -X, -Y parce que j'ai lu quelque part que ces deux options sont liées aux informations d'identification concernant X11 et ces commutateurs feront le travail pour moi. Même sans les commutateurs -X, -Y, ma tentative a échoué.
Que signifie l'erreur «aucun affichage spécifique»?
PS La chose étrange est que si je me connecte au serveur distant via mon PUTTY et que je répète la commande 'firefox' cela fonctionne?!?! (Firefox s'affiche sur l'ordinateur local)
PS mon ordinateur local est Windows 7, donc j'ai Xming en arrière-plan afin de permettre l'affichage X11. Quant à la tentative écrite en partie haute, les commandes ont été tapées sur le terminal Cygwin.
DISPLAY
variable n'a pas été définie. donc je l'ai configuré avecexport DISPLAY=:0.0' and executed
xclock` et le xclock est apparu. Mais quand je me suis ensuite connecté au serveur distant via ssh, et j'ai réessayéxclock
, il est ditError: Can't open display:
Réponses:
Assurez-vous que la variable DISPLAY est définie dans votre environnement cygwin:
après la connexion avec SSH, vérifiez si ce shell connaît également la variable DISPLAY correcte avec:
la source
echo $DISPLAY
. Mais toujours la variable DISPLAY dans le serveur distant est définie sur rien ..Error: Can't open display: :0.0
export DISPLAY=localhost:0
Je viens de rencontrer ce problème de connexion à un serveur RHEL7 sans tête.
Vous avez besoin du package xorg-x11-xauth installé sur votre hôte pour que la variable DISPLAY soit définie et soit correctement autorisée.
J'espère que j'ai sauvé quelqu'un du temps.
la source
ssh -X
anecho $DISPLAY
retourné une URL + port et un appel d'xterm &
ouvert un terminal dans une fenêtre locale.Merci à @jensd, @unxnut de m'avoir aidé. sur la base de vos commentaires, j'ai pu comprendre le problème.
La solution nécessitait deux étapes:
mes tentatives précédentes manquent d'une ou des deux conditions.
Quoi qu'il en soit, pour les utilisateurs ultérieurs qui voient cela, voici des exemples pour vous montrer ce que j'essaie de dire.
cas 1
ma machine locale n'aura pas de variable DISPLAY définie. Et puis je vais ssh sur le serveur distant avec le commutateur -X, puis j'essaierai de l'exécuter
xclock
.comme vous pouvez le voir, une erreur
Error: Can't open display:
est affichée sur le terminal du serveur distant.case2
cette fois, sur la machine locale, je spécifierai la variable DISPLAY. Mais quand je ssh'ing, je ne vais pas activer le commutateur -X. Le résultat sera un échec:
au début, vous pouvez voir que j'ai correctement défini la variable DISPLAY. Mais même ainsi, après ssh'ing (sans le commutateur -X) la xclock n'est pas exécutée.
* Un résultat différent avec
setenv | grep DISPLAY
peut être vu ici (comparer avec le cas 1). dans case2, le résultat est juste vide. d'un autre côté, le résultat de case1 sur cette ligne de commande estDISPLAY: undefined variable
.... Je ne sais pas comment cette différence est provoquée mais je reçois un pressentiment qui est lié au fait que vous ayez satisfait à la condition 1. ou 2 .case3
cette fois, je spécifierai correctement la variable DISPLAY sur la machine locale et également ssh sur le serveur distant avec mon commutateur -X activé.
avec ce réglage, ça
xclock
marche !! voici une capture d'écran pour prouver que je ne mens pas. l'horloge est affichée avec succès sur ma machine locale.Encore une fois, consultez le résultat de
setenv | grep DISPLAY
dans ce cas. Ça se voit maintenantDISPLAY=localhost:11.0
. D'après ce que je sais, cela est lié à MIT-MAGIC-COOKIE dans le fichier .Xauthority, mais comme je n'en sais pas grand-chose, je n'irai pas plus loin.Conclusion: à partir des trois cas ci-dessus, nous pouvons confirmer que pour que X Windows distant s'affiche correctement, 1. la variable DISPLAY de la machine locale et 2. le
-X
commutateur ssh doivent être correctement définis. Bien sûr, le serveur distant doit autoriser le transfert X11.la source