SSH-Reverse-Tunnel aus Konfigurationsdatei

SSH-Reverse-Tunnel aus Konfigurationsdatei

Ich suche nach einer SSH-Client-Konfigurationsanweisung, LocalForwarddie als -LCLI-Parameter funktioniertAberfür den -RParameter

Kurz zusammengefasstvollständige Problemdetails

Die Daten:

repoServer -> myComputer -> NAT -> stagingServer

Ich habe einen lokalen Git-Repository-Server, der nicht dem Internet ausgesetzt ist, und einen Remote-Staging-Server, auf dem ich mein Repo bereitstellen muss.

Dazu melde ich mich über einen Reverse-Socket per SSH beim Remote-Staging-Server an.

Aktuelle Konfiguration fürmein Computer:

Datei:~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes

auf dem ich laufe: ssh StagingServer -R 8022:repository.local:22

Aktuelle Konfiguration fürStagingServer:

Datei:~/.ssh/config

Host repository
  Hostname localhost
  User git
  Port 8022
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_deployer

auf denen ich laufen kann: git clone git@repository:myProject.git

Und alles funktioniert gut, aber... endlich

Die Frage:

Ist es möglich, in der Konfigurationsdatei des SSH-Clients (~/.ssh/config) anzugeben, dass der Reverse-Tunnel geöffnet werden soll, so dass ich nicht hinzufügen muss-R 8022:repository.local:22

Antwort1

Offensichtlich suchen Sie nach RemoteForward. Die genauen Angaben finden Sie im ssh_config-Dokument …

Dokumentation:https://linux.die.net/man/5/ssh_config (Suchen Sie nach RemoteForward). Es ist selbsterklärend.

Fernweiterleitung

Gibt an, dass ein TCP-Port auf dem Remote-Rechner über den sicheren Kanal vom lokalen Rechner an den angegebenen Host und Port weitergeleitet wird. Das erste Argument muss [Bindeadresse:]Port und das zweite Argument Host:Hostport sein. IPv6-Adressen können angegeben werden, indem die Adressen in eckige Klammern eingeschlossen werden oder indem eine alternative Syntax verwendet wird: [Bindeadresse/]Port und Host/Hostport. Es können mehrere Weiterleitungen angegeben werden und zusätzliche Weiterleitungen können in der Befehlszeile angegeben werden. Privilegierte Ports können nur weitergeleitet werden, wenn Sie sich auf dem Remote-Rechner als Root anmelden.

Anschließend erfolgt die Konfiguration fürmein Computerwird:

Datei:~/.ssh/config

Host StagingServer
  Hostname staging.acme.com
  User username
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_username
  ForwardAgent yes
  RemoteForward 8022 repository.local:22

verwandte Informationen