Git choisit les règles SSH d'après le nom de son URL distante
Utilisez l'alias d'hôte SSH dans l'URL distante Git pour que le bloc Host et la ProxyCommand voulus soient sélectionnés.
Utilisez l'alias SSH dans le remote Git lorsque cet alias possède la route du proxy :
Host code-via-proxy
HostName git.example.net
User git
ProxyCommand nc -X connect -x proxy.example.net:8080 %h %p
code-via-proxy est comparé au nom SSH fourni. HostName identifie ensuite le vrai serveur. L'exemple exige un netcat compatible OpenBSD : -X connect demande un HTTP CONNECT vers la destination SSH.
Pour un nouveau checkout :
git clone git@code-via-proxy:team/project.git
Pour un checkout existant :
git remote set-url origin git@code-via-proxy:team/project.git
Remplacez par le vrai chemin du dépôt. L'alias change la sélection de connexion, pas l'identité du dépôt sur son serveur. Pour un serveur Git SSH public sur un réseau autorisant un intermédiaire public, la liste de proxys HTTP fournit des candidats pour l'hôte et le port du proxy. N'utilisez l'exemple sans compte proxy qu'avec un nœud autorisant CONNECT vers la destination et le port SSH réels.
Un remote utilisant [email protected]:team/project.git correspond plutôt à git.example.net. Il ne sélectionne pas l'alias simplement parce que le HostName de l'alias pointe là. Utilisez l'alias ou placez la règle voulue sous le vrai nom.
Examinez aussi les blocs correspondants précédents. Pour la plupart des options SSH, la première valeur obtenue l'emporte : placez donc les réglages précis avant les valeurs par défaut larges qui définissent la même option.