Gérer plusieurs comptes GitHub avec des clés SSH sur Windows
20 juillet 2025- Introduction
- Avant de commencer : nettoyage recommandé
- Dans PowerShell
- Créer un fichier de configuration SSH
- Coté VS Code
Introduction
Git ne permet pas de gérer plusieurs comptes GitHub nativement, car il utilise une seule configuration par défaut.
Avant de commencer : nettoyage recommandé
Supprimer les identifiants GitHub enregistrés évite les conflits et garantit une configuration multi-comptes propre et efficace.
Effacer les identifiants GitHub (sans terminal)
- Menu Démarrer
- Panneau de configuration
- Comptes d’utilisateurs
- Gestionnaire d’identifiants
- onglet Information d'identification windows
- Trouve les entrées liées à GitHub (ex : git:https://github.com) et clique sur Supprimer
Dans PowerShell
Utiliser PowerShell en mode administrateur
- Ferme PowerShell s’il est déjà ouvert
- Clique sur le bouton Démarrer et tape
PowerShell
- Clique droit sur Windows PowerShell puis sélectionne "Exécuter en tant qu’administrateur"
Générer une clé SSH
ssh-keygen -t ed25519
La réponse suivante s’affiche
Enter file in which to save the key (C:\Users\pierr\.ssh\id_ed25519):
Copier le contenu entre parenthèses en personnalisant la chaîne de caractères après id_
Exemple : C:\Users\pierr\.ssh\id_pro
La réponse suivante s’affiche
Enter passphrase (empty for no passphrase):
laisse vide
Enter same passphrase again:
deux fois
La réponse suivante s’affiche
Your identification has been saved in C:\Users\pierr\.ssh\id_pro
Service SSH Agent
Activer le service
- Appuie sur Windows + R, tape
services.msc
et valide - Cherche OpenSSH Authentication Agent.
- Clique droit puis "Propriétés"
- Change le Type de démarrage en Manuel ou Automatique
- Clique sur Appliquer
- Clique Démarrer
- Clique OK
Démarrer le service
Démarre le service et le configure pour qu’il puisse être lancé à la demande:
Get-Service ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
vérifier que le service est bien lancé
Get-Service ssh-agent
Ajouter la clé SSH
Toujours dans PowerShell :
ssh-add C:\Users\pierr\.ssh\id_pro
Pour vérifier que la clé est bien chargée :
ssh-add -l
Tester la configuration
ssh -T github-pro
Créer un fichier de configuration SSH
Dans C:\Users\pierr\.ssh\
, ajoute un fichier config
sans extension
# pro github account
Host github-pro
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile C:\Users\pierr\.ssh\id_pro
# perso github account
Host github-perso
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile C:\Users\pierr\.ssh\id_perso
Host
: alias que tu utiliseras dans tes commandes Git ou SSHIdentityFile
chemin vers ta clé privéeUser
généralementgit
pour GitHub
Coté VS Code
Configurer le compte Git pour chaque projet
Dans le terminal intégré de VS Code (dans le dossier de chaque projet), tu peux définir l’utilisateur Git spécifique :
git config user.name "NomUtilisateurGitHub"
git config user.email "email@github.com"
Ces réglages ne s’appliquent qu’au dépôt actuel grâce à l’option locale (--local est implicite si tu ne mets rien).
Ajouter la clé publique à GitHub
-
Copie le contenu de la clé publique, dans PowerShell :
cat ~/.ssh/id_pro.pub
-
puis sur GitHub
- GitHub
- Settings
- SSH and GPG keys
- New SSH key
- Donne un nom
- Colle la clé
- clique sur Add SSH key
Modifier l’URL du remote
Si tu veux que le projet utilise une clé SSH spécifique (via ton fichier ~/.ssh/config), il faut modifier l’URL du dépôt distant :
git remote set-url origin git@github-pro:utilisateur/repo.git
Tu peux vérifier l’URL actuelle avec :
git remote -v
Configurer l’identité Git locale
Dans le dossier du projet, configure le nom et l’email associés au bon compte :
git config user.name "TonNomGitHub"
git config user.email "ton_email@exemple.com"
Ces réglages sont locaux au projet, donc ils n’affecteront pas tes autres dépôts.
Vérifie que ça fonctionne avec
git config user.name
git config user.email
Pusher sur GitHub via le terminal
Une fois les comptes et clés SSH configurés, le code doit être envoyé via le terminal avec git push