Mit der entfernten Anschlussweiterleitung können Sie Daten von einem Anwendungsclient auf dem Secure Shell-Serverhost sicher weiterleiten. Bei der Konfiguration müssen Sie neben einem entfernten Weiterleitungsanschluss auch einen Zielhost und einen Zielanschluss für den Datenempfang festlegen. Die entfernte Anschlussweiterleitung funktioniert folgendermaßen.
Sobald die Secure Shell-Verbindung hergestellt ist, öffnet der Secure Shell-Server ein socket Kombination aus einem Hostnamen (IP-Adresse oder DNS-Name) und einer Anschlussnummer. Dabei wird ein eindeutiger Identifikator angelegt, den die Clientanwendung als Kommunikationsendpunkt verwendet. für den Empfang auf dem Host des Secure Shell-Servers und nutzt dazu den für eingehende Verbindungen festgelegten Anschluss.
Eine Clientanwendung auf dem Secure Shell-Serverhost ist so konfiguriert, dass sie sich mit dem empfangenden Anschluss verbindet (und nicht direkt mit dem Anwendungsserverhost und -anschluss). Wenn der Client die Verbindung hergestellt hat, werden alle Daten an den empfangenden Anschluss gesendet und anschließend an den Secure Shell-Server weitergeleitet.
Der Secure Shell-Server verschlüsselt die Daten und sendet sie über den sicheren Secure Shell-Kanal an den Secure Shell-Client.
Der Secure Shell-Client empfängt die Daten, entschlüsselt sie und leitet sie an den Zielhost und Zielanschluss (auf dem Secure Shell-Clienthost) weiter, die die Serveranwendung verwenden.
Die Antwortdaten werden von der Serveranwendung an den Secure Shell-Client weitergeleitet, der sie verschlüsselt und über den sicheren SSH-Tunnel an den Secure Shell-Server sendet. Der Secure Shell-Server entschlüsselt die Daten und leitet sie an die ursprüngliche Clientanwendung weiter.
Die allgemeine Befehlszeilensyntax für die entfernte Anschlussweiterleitung lautet wie folgt:
ssh -R listening_port:app_host:hostport user@sshserver
In dem folgenden Diagramm ist eine der möglichen Konfigurationen für die entfernte Anschlussweiterleitung dargestellt.
Anwendungsserver und Secure Shell-Client werden auf HostA ausgeführt. Secure Shell-Server und Anwendungsclient werden beide auf HostB ausgeführt. Für alle Daten, die an den Anschluss 2222 auf HostB gesendet werden, erfolgt die Weiterleitung an den Anschluss 222 auf HostA. Bei dieser Anordnung werden alle übertragenen Daten sicher verschlüsselt. Diese Konfiguration erfolgt über den folgenden Befehl:
ssh -R 2222:localhost:222 user@HostB