web-dev-qa-db-fra.com

Avec le transfert SSH X11 (`ssh -X`), obtenez` Impossible d'ouvrir l'affichage` en essayant d'exécuter les applications X

Je peux me connecter pour séparer en utilisant

ssh -X Hostip

mais quand je lance la commande xclock cela me donne cette erreur

Error: Can't open display: localhost:11.0

Je vérifie ma valeur d'affichage en utilisant

echo $DISPLAY

et le résultat est

localhost:11.0

Et le transfert X11 est défini sur OUI dans le fichier sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Un conseil ce qui me manque ici?

24
OmiPenguin

Utilisation -Y. Depuis la page de manuel sur ssh:

-Y Active le transfert X11 de confiance. Les transferts X11 approuvés ne sont pas soumis aux contrôles d'extension X11 SECURITY.

Si vous rencontrez toujours des problèmes, vous pouvez essayer en définissant $DISPLAY à l'adresse IP de votre box local :

$ export DISPLAY='<ip_address>:11.0'

Il peut être utile de le définir comme

$ export DISPLAY='127.0.0.1:11.0'

Les gens semblent avoir ce problème couramment lorsque ssh'ing de Mac OS X . Vous pouvez également définir

X11UseLocalhost no

dans ce cas également.

18
Kyle Kelley

Merci à https://unix.stackexchange.com/a/12772/61349 pour leurs instructions de diagnostic.

Assurez-vous que votre client ssh demande le transfert X11 avec l'indicateur - v

ssh example.com -X -v

Et recherchez le message spécifique:

debug1: Requesting X11 forwarding with authentication spoofing.

Un autre signe de problème révélateur est l'absence de la variable d'environnement DISPLAY définie pour vous. S'il est vide/non défini, il y a quelque chose qui ne va pas. Au moins selon le même message crédité ci-dessus , ces variables sont définies automatiquement pour vous.


J'utilisais un SSH Control Master mes connexions ssh comme ceci:

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

Ma connexion ssh précédente n'avait pas demandé X11Firwarding, donc les options de l'appel futur ssh n'étaient pas utilisées. Donc pour moi,

ssh -X était tout simplement ignoré

Si vous ne voyez pas "Requesting X11 Forwarding", mais vous voyez le muxer réutiliser les sessions;

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

Ensuite, vous devez quitter votre ControlMaster actuel pour cette connexion et vous reconnecter avec l'indicateur -X/-Y.

Pour arrêter votre ControlMaster

ssh -O check <hostname>

Master running (pid=2758)

(Cela fermera toutes les connexions actives à l'aide du ControlMaster)

ssh -O exit <hostname>

Exit request sent.
6
ThorSummoner

cela a fonctionné pour moi:

Changement

X11UseLocalhost yes

à

X11UseLocalhost no
6
don

Ce qui a résolu cela pour moi, c'est simplement d'installer xauth, une fois terminé, cela a fonctionné comme un charme!

5
Mostafa

Lors de la tentative de transfert vers XQuartz sur macOS, j'ai résolu le problème en exécutant la commande ssh (ssh -Y dans mon cas) depuis le terminal XQuartz (ouvert en cliquant avec le bouton droit sur l'icône XQuartz dans le dock et en cliquant sur Applications> Terminal).

3
Harry Cutts