ssh mit X11 von A nach C bis B, wenn die Weiterleitung von X11 auf B ausgeschaltet ist

682
José Luiz Ferreira

Ich muss eine Verbindung sshmit einem Computer „C“ herstellen, auf den nur über einen Frontdoor-Server „B“ zugegriffen werden kann. Ich kann dies entweder durch Einstellung ProxyCommandin der Konfigurationsdatei oder durch:

ssh -t user@B ssh user@C 

Im Computer „C“ X11 - Forwarding ist auf, aber auf dem Server „B“ es ist aus, und ich bin nicht die admin / root.

Gibt es eine Möglichkeit, "A" mit "C" (über "B") mit der X11-Weiterleitung zu verbinden, auch wenn sie in "B" ausgeschaltet ist?

4

2 Antworten auf die Frage

2
ivanivan

Ein SSH-Tunnel würde dies lösen, indem er eine "direkte" Route von Ihrem Computer zu Server C angibt. Sie müssen sich jedoch bei ServerB anmelden können.

user@serverA:~/ $ ssh -L2222:serverC:22 user@serverB 

Melden Sie sich wie gewohnt an, öffnen Sie ein neues Terminal und

user@serverA:~/ $ ssh -p 2222 serverCusername@localhost 

Wenn Sie eine Verbindung zu Port 2222 auf Ihrem localhost (dh serverA) herstellen, geht Ihre Verbindung über Ihre SSH-Verbindung zu serverB über. Dann öffnet sie einen neuen zufälligen High-Port auf serverB und erreicht eine neue Verbindung, die von serverB ausgeht und versucht, dies zu versuchen Verbinden Sie sich mit ServerC

Wenn Sie beim ersten ssh-Befehl auf serverC verweisen, verwenden Sie den Namen / die IP-Adresse, die serverB für als / für die Auflösung / als Verbindung mit dem Server gibt

+1 Von mir wird das von Ihnen verwendete Formular für die Portweiterleitung auf diesen Seiten nur selten erwähnt, obwohl es sehr nützlich ist (wie in diesem Fall !!). MariusMatutiae vor 6 Jahren 0
0
Jakuje

Natürlich können Sie mit dieser Methode eine Verbindung über einen Proxy herstellen. Die bevorzugte Methode besteht jedoch darin, diese Einstellung mithilfe von ProxyJumpoder zu konfigurieren. Dies führt dazu, dass -JSie sich von Ihrem Computer aus authentifizieren und nicht in der Mitte, und die von SSH bereitgestellten Funktionen werden nicht eingeschränkt ( Portweiterleitung, X11-Weiterleitung, ...). Sie können dasselbe mit erreichen

ssh -J user@B user@C 

Das kann auch als in die Konfigurationsdatei geschrieben werden

Host C User user ProxyJump user@B 

Oder wenn Sie eine ältere OpenSSH-Version haben, verwenden Sie ProxyCommand:

Host C User user ProxyCommand ssh -W %H:%p user@B 

und dann einfach mit verbinden ssh -Y C