Ich suche nach einer SSH-Client-Konfigurationsanweisung, LocalForward
die als -L
CLI-Parameter funktioniertAberfür den -R
Parameter
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