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?
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.
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.
cela a fonctionné pour moi:
Changement
X11UseLocalhost yes
à
X11UseLocalhost no
Ce qui a résolu cela pour moi, c'est simplement d'installer xauth, une fois terminé, cela a fonctionné comme un charme!
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).