Ich habe eine Frage zum SSH-Tunneling. Ich habe diesen Artikel gelesen
Ich möchte, dass die X-Weiterleitung funktioniert und einige X-Anwendungen zu Hause ausgeführt und auf einem Remote-System angezeigt werden:
ssh -X -R 5555:localhost:22 [email protected] -N
Auf der Fernbedienung:
ssh -X -p 5555 [email protected]
Dann nach Hause:
//configure sshd to listen on 5555
ssh [email protected]
//here run some app
Sollte es funktionieren?
ssh
x11
ssh-tunneling
xforwarding
wawa235
quelle
quelle
Antworten:
Ich habe einige Skizzen gezeichnet
Die Maschine, auf der der Befehl ssh tunnel eingegeben wird, heißt »Ihr Host« .
Einführung
lokal:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
bedeutet: Verbindung mit ssh herstellenconnectToHost
und alle Verbindungsversuche an den lokalensourcePort
PortonPort
des angerufenen Computers weiterleitenforwardToHost
, der vomconnectToHost
Computer aus erreichbar ist.Fernbedienung:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
bedeutet: Verbinden Sie sich mit ssh mitconnectToHost
und leiten Sie alle Verbindungsversuche an den Remote-sourcePort
PortonPort
des angerufenen Computers weiterforwardToHost
, der von Ihrem lokalen Computer aus erreichbar ist.Dein Beispiel
Wenn Sie nur möchten, dass die X-Weiterleitung funktioniert, dh einige X-Anwendungen auf dem Computer zu Hause ausführen und auf einem Remote-System anzeigen lassen (nennen wir es Arbeitscomputer, weil es sich möglicherweise an Ihrem Arbeitsplatz befindet), dann sind Sie möglicherweise brauche überhaupt keinen SSH-Tunnel.
Starten Sie X-Anwendungen ohne Tunnel
Können Sie einfach vom Arbeitscomputer auf Ihren Heimcomputer ssh? Wenn dies der Fall ist , wenn Sie auf dem Arbeitscomputer sitzen und eine X-Anwendung starten möchten, die auf Ihrem Heimcomputer ausgeführt wird, aber auf Ihrem Arbeitscomputer angezeigt wird , müssen Sie Folgendes eingeben (auf dem Arbeitscomputer):
ssh -X homeuser @ homecomputer Firefox
Dadurch wird Firefox auf Ihrem Heimcomputer gestartet und auf dem Computer angezeigt, auf dem Sie diesen Befehl eingegeben haben, z. B. auf Ihrem Arbeitscomputer.
Versteckter Computer braucht Tunnel
Dies ist Bild Nummer 3 meiner Skizzen. Oft ist der Heimcomputer nicht direkt über das Internet erreichbar, da er sich hinter einer Firewall befindet oder über NAT (vor einem Router) verborgen ist . Dann können Sie einen Tunnel benutzen.
An Ihrem blauen Heimcomputer (
yourhost
) geben Sie Folgendes ein:Wo
5555
ist der grüne Port und22
ist der rosa Port im Bild.Wenn Sie jetzt bei der Arbeit sind
remotehost
und eine Verbindung zum grünen Port herstellen5555
, wird Ihre Verbindung getunnelt / an den rosa Port Ihres Heimcomputerslocalhost
(dh Ihres blauen Heimcomputers selbst) weitergeleitet. Jetzt müssen Sie auf Ihrem Arbeitscomputer Folgendes eingeben:Dadurch wird Firefox auf Ihrem Heimcomputer (
yourhost
) gestartet und auf dem Computer angezeigt, auf dem Sie diesen Befehl eingegeben haben, z. B. auf Ihrem Arbeitscomputer (remotehost
).quelle
Sie müssen die Remote-Anzeige angeben, die Sie weiterleiten möchten. Auf der Fernbedienung:
:0
Anzeige weiterleiten .Führen Sie dann in dieser Shell (die jetzt auf Ihrem Heimcomputer ausgeführt wird) Folgendes aus:
um herauszufinden, was die weitergeleitete Anzeige ist. Das ist ungefähr so
localhost:10
, was bedeutet, dass Sie eine TCP-Verbindung an Port 6010 herstellen müssen, um eine Verbindung zum Display:0
auf dem Remote-Computer herzustellen (:0
dh, um eine Verbindung zu einem Unix-Domain-Socket in einer Art herzustellen/tmp/.X11-unix
).Damit eine Anwendung auf Ihrem Computer auf dem Display des Remote-Servers angezeigt wird, müssen Sie sie lediglich anweisen, Folgendes zu verwenden
localhost:10
:zum Beispiel.
Beachten Sie, dass dies ein Tunnel über einem Tunnel ist.
quelle