Si vous avez des soucis dans certains projets Git qui nécessitent un login dans la console pour certaines opérations, c’est certainement que les échanges avec Github passent par HTTPS au lieu de SSH. On va voir ici comment forcer SSH de manière globale pour toutes les connexions à github.
Configurer sa clé privée SSH
Tout d’abord vous aurez besoin de générer et configurer votre clé privée SSH pour GitHub.
Tout est très bien détaillé quel que soit votre OS dans la documentation: Génération d’une nouvelle clé SSH et ajout de celle-ci à ssh-agent
Configuration Git: Forcer SSH à la place de HTTPS
Cette commande va forcer votre client Git à transformer toutes les URL HTTPS de github en SSH
git config --global url."git@github.com:".insteadOf "https://github.com/"
De cette manière même si vous avez des URL en HTTPS dans vos repos git, elles seront transformées en SSH automatiquement !
Comment ça marche ?
Si vous clonez un repo avec une URL HTTPS, elle sera automatiquement réécrite en SSH
git clone https://github.com/torvalds/linux.git
Cette URL sera réécrite pour être accessible via SSH au lieu de HTTPS. Elle récupérera les données de git@github.com via SSH.
L’inverse: Forcer HTTPS à la place de SSH
L’inverse est totalement possible si vous n’avez pas de clé SSH configurée par exemple et préférez l’authentification HTTPS à la place:
git config --global url."https://github".insteadOf git://github