Solución 1:
Hay varias formas de hacer esto, la que prefiero es reenviar el puerto ssh:
Primero, conéctese a la máquina B y reenvíe [localPort] a C:22 a través de B
A$ ssh -L [localPort]:C:22 B
Luego, conéctese a C desde A a través de este túnel recién creado usando [localPort], reenviando X11
A$ ssh -X -p [localPort] localhost
Ahora podemos ejecutar programas X11 en C y mostrarlos en A
C$ xclock
[localPort] puede ser cualquier puerto que aún no esté escuchando en A, a menudo uso 2222 por simplicidad.
Solución 2:
Esto se puede lograr fácilmente mediante el reenvío de puertos:
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
El puerto localhost:2022 se reenvía a C:22 a través de BSSH a C a través de localhost:2022Utilice X normalmente
Solución 3:
Has probado con
A$ ssh -Y B
B$ ssh -Y C
C$ xlclock
El indicador -Y "Habilita el reenvío X11 de confianza".
Solución 4:
Suponiendo que el problema es que la máquina intermedia no tiene X, pero está configurada para permitir el reenvío de X11, simplemente instale xauth.
en un sistema basado en yum (fedora, redhat, centos):
B$ sudo yum install xauth
en un sistema basado en apt (debian, ubuntu):
B$ sudo apt-get install xauth
Solución 5:
Para versiones más nuevas, tienes que deshabilitar X11UseLocalhost
para que esto funcione.
Debe hacer esto en el /etc/ssh/sshd_config
del Host C y reinicie sshd para que esto funcione:
X11Forwarding yes
X11UseLocalhost no