Der Befehl zum Weiterleiten von Port 80 von Ihrem lokalen Computer ( localhost
) an den Remote-Host an Port 8000 lautet:
ssh -R 8000:localhost:80 oli@remote-machine
Dies erfordert eine zusätzliche Optimierung des SSH-Servers. Fügen Sie die folgenden Zeilen hinzu /etc/ssh/sshd_config
:
Match User oli
GatewayPorts yes
Laden Sie als Nächstes die Konfiguration neu, indem Sie den Server ausführen sudo reload ssh
.
Die Einstellung GatewayPorts yes
bewirkt , dass SSH den Port 8000 an die Platzhalteradresse bindet, sodass er für die öffentliche Adresse von remote-machine
( remote-machine:8000
) verfügbar wird .
Wenn Sie die Option benötigen, nicht alles an die Platzhalteradresse zu binden, wechseln Sie GatewayPorts yes
zu GatewayPorts clientspecified
. Da ssh
standardmäßig eine Bindung an die Loopback-Adresse erfolgt, müssen Sie ein Leerzeichen bind_address
für die Bindung der Platzhalteradresse angeben :
ssh -R :8000:localhost:80 oli@remote-machine
Das :
Vorher 8000
ist obligatorisch, wenn auf festgelegt GatewayPorts
ist clientspecified
und Sie den öffentlichen Zugriff zulassen möchten remote-machine:8000
.
Relevante manuelle Auszüge:
ssh (1)
-R [Bindeadresse:] Port: Host: Hostport
Gibt an, dass der angegebene Port auf dem Remote-Host (Server) an den angegebenen Host und Port auf der lokalen Seite weitergeleitet werden soll. Dies funktioniert durch Zuweisen eines Sockets zum Abhören des Ports auf der Remote-Seite. Wenn eine Verbindung zu diesem Port hergestellt wird, wird die Verbindung über den sicheren Kanal weitergeleitet und eine Verbindung zum Host-Port hostport vom lokalen Computer hergestellt. Standardmäßig ist der Listening-Socket auf dem Server nur an die Loopback-Schnittstelle gebunden. Dies kann durch Angabe einer bind_address überschrieben werden. Eine leere bind_address oder die Adresse '*' gibt an, dass der Remote-Socket alle Schnittstellen überwachen soll. Die Angabe einer fernen Bindungsadresse ist nur dann erfolgreich, wenn die GatewayPorts-Option des Servers aktiviert ist (siehe sshd_config (5)).
sshd_config (5)
GatewayPorts
Gibt an, ob Remotehosts Verbindungen zu für den Client weitergeleiteten Ports herstellen dürfen. Mit GatewayPorts kann festgelegt werden, dass sshd zulässt, dass Weiterleitungen von Remoteports an Nicht-Loopback-Adressen gebunden werden, sodass andere Hosts eine Verbindung herstellen können. Das Argument kann "Nein" sein, um zu erzwingen, dass Remote-Port-Weiterleitungen nur für den lokalen Host verfügbar sind, "Ja", um zu erzwingen, dass Remote-Port-Weiterleitungen an die Platzhalteradresse gebunden werden, oder "Clientspezifiziert", damit der Client die Adresse auswählt, an die er sich richtet Die Weiterleitung ist gebunden. Der Standardwert ist "Nein".
Siehe auch:
GatewayPorts
war das Wundermittel hier. Ich finde es gut, dass Sie eine Version gefunden haben, mit der ich diese ziemlich leistungsstarke Technik auf bestimmte Benutzer beschränken kann.