Solution 1 :
Il y a plusieurs façons de le faire, celle que je préfère est de rediriger le port ssh :
Tout d'abord, connectez-vous à la machine B et transférez [localPort] à C:22 via B
A$ ssh -L [localPort]:C:22 B
Ensuite, connectez-vous à C depuis A via ce tunnel nouvellement créé en utilisant [localPort], en transférant X11
A$ ssh -X -p [localPort] localhost
Maintenant, nous pouvons exécuter des programmes X11 sur C et les afficher sur A
C$ xclock
[localPort] peut être n'importe quel port que vous n'écoutez pas déjà sur A, j'utilise souvent 2222 pour plus de simplicité.
Solution 2 :
Cela peut facilement être accompli en utilisant la redirection de port :
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
Le port localhost :2022 est transmis à C :22 via BSSH vers C via localhost :2022Utilisez X comme d'habitude
Solution 3 :
Avez-vous essayé avec
A$ ssh -Y B
B$ ssh -Y C
C$ xlclock
Le drapeau -Y "Active le transfert X11 de confiance."
Solution 4 :
En supposant que le problème est que la machine du milieu n'a pas X, mais qu'elle est autrement configurée pour autoriser le transfert X11, installez simplement xauth.
sur un système basé sur yum (fedora, redhat, centos) :
B$ sudo yum install xauth
sur un système basé sur apt (debian, ubuntu) :
B$ sudo apt-get install xauth
Solution 5 :
Pour les versions plus récentes, vous devez désactiver X11UseLocalhost
pour que cela fonctionne.
Vous devez le faire sur le /etc/ssh/sshd_config
de l'Hôte C et redémarrez sshd pour que cela fonctionne :
X11Forwarding yes
X11UseLocalhost no