Řešení 1:
Existuje několik způsobů, jak to udělat, ten, který preferuji, je předat ssh port:
Nejprve se připojte ke stroji B a předejte [localPort] na C:22 přes B
A$ ssh -L [localPort]:C:22 B
Dále se připojte k C z A přes tento nově vytvořený tunel pomocí [localPort], přesměrování X11
A$ ssh -X -p [localPort] localhost
Nyní můžeme spouštět programy X11 na C a nechat je zobrazovat na A
C$ xclock
[localPort] může být jakýkoli port, který ještě neposloucháte na A, pro jednoduchost často používám 2222.
Řešení 2:
To lze snadno provést pomocí přesměrování portů:
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
Port localhost:2022 je přesměrován na C:22 přes BSSH na C přes localhost:2022Použít X jako normálně
Řešení 3:
Zkusili jste to s
A$ ssh -Y B
B$ ssh -Y C
C$ xlclock
Příznak -Y "Povoluje důvěryhodné předávání X11."
Řešení 4:
Za předpokladu, že problém je v tom, že prostřední počítač nemá X, ale jinak je nakonfigurován tak, aby umožňoval předávání X11, stačí nainstalovat xauth.
na systému založeném na yum (fedora, redhat, centos):
B$ sudo yum install xauth
na systému založeném na apt (debian, ubuntu):
B$ sudo apt-get install xauth
Řešení 5:
Pro novější verze opensshd musíte vypnout X11UseLocalhost
aby to fungovalo.
Musíte to udělat na hostiteli C /etc/ssh/sshd_config
a restartujte sshd, aby to fungovalo:
X11Forwarding yes
X11UseLocalhost no