web-dev-qa-db-fra.com

ssh -X "Erreur Xt: Impossible d'ouvrir l'affichage:: 0.0"

J'essaie d'ouvrir xterm sur mon serveur distant (Ubuntu Server 10.04) avec ssh:

ssh -X name@machine xterm

mais l'erreur renvoyée est:

xterm Xt error: Can't open display: :0.0`

J'ai googlé et essayé tout ce que j'ai trouvé. Toujours avoir cette erreur. La variable DISPLAY doit être définie automatiquement, non?

Partie de sshd_config:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

Aucun conseil?

8
Fabian

Si ssh peut établir la connexion, il va définir DISPLAYsur la valeur appropriée. Puisque X11DisplayOffset est défini sur 10 (valeur par défaut), ssh utilisera le premier affichage disponible commençant à 10. Si vous voyez une valeur inférieure à 10¹, alors quelque chose interfère avec le transfert X11 normal configuré par ssh, au moins. en remplaçant DISPLAYname__. La valeur :0 (ou :0.0, la partie située après le point n'a pas d'importance) indique le premier affichage démarré sur la machine, qui correspond généralement à la session active (ou à l'invite de connexion graphique) sur la console de la machine.

L'explication la plus probable du comportement observé est qu'un des fichiers de configuration de votre shell définit DISPLAYname__. Le coupable le plus évident est ~/.bashrc (qui, en raison d’un caprice de bash, est exécuté chaque fois que le parent de bash est rshdou sshdname__, même si le shell n’est pas interactif). Un autre fichier qui définit les variables d'environnement est /etc/environment. Si c'est le cas, la solution est évidente: ne définissez pas DISPLAYici. (Il existe très peu de cas dans lesquels vous devez définir DISPLAYmanuellement.)

Il y a d'autres explications exotiques. Cela peut se produire si vous avez modifié votre identifiant Shell en screen(une idée sympa en théorie, mais non pratique) et que vous disposez d'un fichier d'initialisation de shell qui définit de manière forcée DISPLAYà l'intérieur de l'écran (ce n'est pas une si bonne idée). Cela peut également arriver si vous avez configuré le serveur pour accepter les variables d'environnement envoyées par le client (directive AcceptEnvdans sshd_config), si le client envoie DISPLAYet si la connexion X n'a ​​pas pu être établie. Cela peut également arriver si vous définissez une variable d'environnement sur le serveur via la directive commanddans ~/.ssh/authorized_keys. Ou xtermpourrait être un script.

¹ Ou quelle que soit la valeur de X11DisplayOffset se trouve dans la configuration du serveur, mais la valeur par défaut n’est pratiquement jamais modifiée.

7
Gilles

Votre commande devrait fonctionner, ou du moins elle le fait pour moi. Essayez ceci à la place:

ssh -Y user@machine xterm

Modifier (1):

Essaye ça:

ssh -X user@machine env

Cela devrait montrer tout l'environnement. Il devrait y avoir diverses choses SSH dedans, et aussi DISPLAY. AFFICHAGE devrait être 10.0.

Vous pouvez aussi essayer ceci:

ssh -X user@machine DISPLAY=10.0 xterm
3
ed.

En plus de X11Forwarding yes, j’avais également besoin d’ajouter

X11UseLocalhost no

dans /etc/ssh/sshd_config

comme décrit ici .

2
user2400538

Le contrôle d’accès de X est probablement un obstacle.

Exécutez xhost + (à partir du package x11-xserver-utils) pour désactiver complètement le contrôle d'accès.

2
Geert

J'ai trouvé que xauth n'avait pas été installé.

1
allen

Vérifiez également que X11 est installé sur le client. J'avais ce problème lorsque j'ai mis à niveau mon Mac vers OS X Mountain Lion. Mountain Lion supprime X11, vous devez donc l'installer à nouveau via le projet open source X Quartz. http://xquartz.macosforge.org/landing/

0
Paul Maunders