Git wählt SSH-Regeln anhand des Namens in seiner Remote-URL
Verwenden Sie den SSH-Host-Alias in der Git-Remote-URL, damit der vorgesehene Host-Block und ProxyCommand gewählt werden.
Verwenden Sie den SSH-Alias im Git-Remote, wenn dieser Alias die Proxy-Route besitzt:
Host code-via-proxy
HostName git.example.net
User git
ProxyCommand nc -X connect -x proxy.example.net:8080 %h %p
code-via-proxy wird mit dem angegebenen SSH-Namen abgeglichen. HostName kennzeichnet dann den echten Server. Das Beispiel benötigt OpenBSD-kompatibles netcat: -X connect fordert HTTP CONNECT zum SSH-Ziel an.
Für einen neuen Checkout:
git clone git@code-via-proxy:team/project.git
Für einen bestehenden Checkout:
git remote set-url origin git@code-via-proxy:team/project.git
Ersetzen Sie den echten Repository-Pfad. Der Alias ändert die Verbindungsauswahl, nicht die Identität des Repositorys auf seinem Server. Für einen öffentlichen Git-SSH-Server in einem Netz, das einen öffentlichen Vermittler zulässt, liefert die HTTP-Proxy-Liste Kandidaten für Proxy-Host und -Port. Verwenden Sie das Beispiel ohne Proxy-Konto nur mit einem Knoten, der CONNECT zum tatsächlichen SSH-Ziel und -Port erlaubt.
Ein Remote, das [email protected]:team/project.git verwendet, passt stattdessen auf git.example.net. Es wählt den Alias nicht allein deshalb, weil das HostName des Alias dorthin zeigt. Verwenden Sie entweder den Alias oder legen Sie die gewünschte Regel unter den echten Namen.
Prüfen Sie auch frühere passende Blöcke. Bei den meisten SSH-Optionen gewinnt der erste gefundene Wert, setzen Sie daher spezifische Einstellungen vor breite Voreinstellungen, die dieselbe Option definieren.