Lösung 1:
Es gibt mehrere Möglichkeiten, dies zu tun, ich bevorzuge die Weiterleitung des ssh-Ports:
Stellen Sie zunächst eine Verbindung zu Maschine B her und leiten Sie [localPort] an C:22 über B
weiterA$ ssh -L [localPort]:C:22 B
Verbinden Sie sich als Nächstes mit C von A durch diesen neu erstellten Tunnel mit [localPort] und leiten Sie X11
weiterA$ ssh -X -p [localPort] localhost
Jetzt können wir X11-Programme auf C ausführen und sie auf A
anzeigen lassenC$ xclock
[localPort] kann jeder Port sein, den Sie nicht bereits auf A hören, ich verwende der Einfachheit halber oft 2222.
Lösung 2:
Dies kann einfach durch Portweiterleitung erreicht werden:
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
Port localhost:2022 wird an C:22 über BSSH an C über localhost:2022 weitergeleitet. Verwenden Sie X wie gewohnt
Lösung 3:
Hast du es mal mit
versuchtA$ ssh -Y B
B$ ssh -Y C
C$ xlclock
Das Flag -Y "Aktiviert vertrauenswürdige X11-Weiterleitung."
Lösung 4:
Angenommen, das Problem besteht darin, dass der mittlere Rechner kein X hat, aber ansonsten so konfiguriert ist, dass er die Weiterleitung von X11 zulässt, installieren Sie einfach xauth.
auf einem Yum-basierten System (Fedora, Redhat, Centos):
B$ sudo yum install xauth
auf einem apt-basierten System (debian, ubuntu):
B$ sudo apt-get install xauth
Lösung 5:
Für neuere Versionen von opensshd müssen Sie X11UseLocalhost
deaktivieren damit das funktioniert.
Sie müssen dies auf /etc/ssh/sshd_config
von Host C tun und starten Sie sshd neu, damit dies funktioniert:
X11Forwarding yes
X11UseLocalhost no