Wie leite ich X durch zwei SSH-Tunnel weiter?

Wie leite ich X durch zwei SSH-Tunnel weiter?

Ich versuche, von meinem Arbeitscomputer aus ein X-Programm auf meinem Heimcomputer auszuführen. Die grundlegende Konfiguration ist folgende:

Arch Linux-Arbeitscomputer -> OpenBSD-SSH-Router (zu Hause) -> Arch Linux-Heimcomputer (mit SSH)

Ich habe das noch nie versucht und bin mir nicht ganz sicher, wie. Wie bekomme ich das hin?

Wenn ich einfach versuche,

$(work computer) ssh -Y home-ip
..
$(home router) ssh -Y private-ip

Ich erhalte im letzten Tunnel die Meldung „X11-Weiterleitungsanforderung auf Kanal 0 ist fehlgeschlagen“

Wie mache ich das richtig?

EDIT: Ich habe vergessen, X-Forwarding auf dem SSHD meines Heimcomputers zu aktivieren. Ich habe das jetzt behoben, aber es scheint nichts zu passieren, wenn ich einen einfachen Befehl wie ausführe xterm. Es bleibt einfach da und versucht vermutlich, das Xterm-Fenster auf meinem Router und nicht auf meinem Arbeitscomputer anzuzeigen.

Antwort1

Wie wäre es, wenn Sie einen Port auf Ihrem Arbeitscomputer an Port 22 Ihres Heimcomputers und dann ssh -Yan diesen lokalen Port weiterleiten?

Zum Beispiel,

ssh -L 2222:private-ip:22 router-ip
ssh -Y localhost:2222

Antwort2

Was Sie getan haben, sollte funktionieren, aber Sie müssen das xauthProgramm auf dem Router installiert haben, damit es einen Sicherheitsschlüssel für die virtuelle X11-Anzeige erstellen kann, die SSH erstellt. Sie müssen es xauthauf jedem Computer installieren, auf dem Sie ssh -Xes ssh -Yverwenden, auch wenn Sie dort eigentlich keine X-Anwendungen ausführen, sondern es nur als Zwischenschritt zu einem anderen Ort verwenden.

Nachdem Sie eine Verbindung zum Heimcomputer hergestellt haben, überprüfen Sie Ihre $DISPLAYVariable. Sie sollte etwa wie folgt lauten localhost:10: . Wenn nicht, gehen Sie zurück zu Ihrer Shell auf dem Router und überprüfen Sie sie $DISPLAYdort.

verwandte Informationen