Git-Repositories lassen sich beim Einsatz von Tools wie GitLab neben HTTP auch per SSH klonen. Letzteres ist vor allem dann charmant, wenn kein VPN zum Einsatz kommt – jedoch gilt es zu beachten, DNS über einen Jumphost zu senden.
Der erste Schritt ist es, eine SSH-Verbindung mit Port-Weiterleitung zu erstellen:
ssh -A -D 1337 USER@IP -i pinkepank.key
Anschließend lässt sich http://localhost:1337 als SOCKS-Proxy verwenden – Webserver im entfernten Netzwerk sollten nun inklusive DNS erreichbar sein.
Das Klonen des Git-Repositories erfolgt mit überschriebener http-Konfiguration:
$ git -c http.proxy=socks5h://localhost:1337 clone http://gitlab.pinkepank.remote-site.org/group/repo.git
Besonders wichtig ist das angegebene Protokoll socks5h – die folgenden Protokolle werden unterstützt:
Parameter | Erläuterung |
socks4:// |
SOCKS4-Proxy, DNS-Auflösung über Client |
socks4h:// |
SOCKS4-Proxy, DNS-Auflösung über entferntes System |
socks5:// |
SOCKS5-Proxy, DNS-Auflösung über Client |
socks5h:// |
SOCKS5-Proxy, DNS-Auflösung über entferntes System |
Damit die Konfiguration nicht jedes Mal überschrieben werden muss kann der Proxy auf Repository oder globaler Ebene (–global) konfiguriert werden:
$ git config http.proxy socks5h://localhost:1337