Soluzione 1:
Ci sono diversi modi per farlo, quello che preferisco è inoltrare la porta ssh:
Innanzitutto, connettiti alla macchina B e inoltra [localPort] a C:22 tramite B
A$ ssh -L [localPort]:C:22 B
Successivamente, connettiti a C da A attraverso questo tunnel appena creato utilizzando [localPort], inoltrando X11
A$ ssh -X -p [localPort] localhost
Ora possiamo eseguire i programmi X11 su C e visualizzarli su A
C$ xclock
[localPort] può essere qualsiasi porta che non stai già ascoltando su A, io uso spesso 2222 per semplicità.
Soluzione 2:
Questo può essere facilmente realizzato usando il port forwarding:
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
La porta localhost:2022 viene inoltrata a C:22 tramite BSSH a C tramite localhost:2022Usa X normalmente
Soluzione 3:
Hai provato con
A$ ssh -Y B
B$ ssh -Y C
C$ xlclock
Il flag -Y "Abilita l'inoltro X11 attendibile."
Soluzione 4:
Supponendo che il problema sia che la macchina centrale non ha X, ma è altrimenti configurata per consentire l'inoltro di X11, basta installare xauth.
su un sistema basato su yum (fedora, redhat, centos):
B$ sudo yum install xauth
su un sistema basato su apt (debian, ubuntu):
B$ sudo apt-get install xauth
Soluzione 5:
Per le versioni più recenti opensshd devi disabilitare X11UseLocalhost
affinché funzioni.
Devi farlo su /etc/ssh/sshd_config
dell'host C e riavvia sshd affinché funzioni:
X11Forwarding yes
X11UseLocalhost no