Aller au contenu
Développement medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Stockage des credentials Git

8 min de lecture

Git Credential Manager (GCM) est le helper recommandé : il stocke vos identifiants de façon sécurisée dans le trousseau de clés de l’OS. Mais Git propose aussi des helpers plus simples (cache, store) et vous pouvez opter pour des clés SSH au lieu de tokens HTTPS. Ce guide couvre tous les mécanismes d’authentification Git.

Prérequis : Protocoles Git et Installer et configurer Git.

  • Configurer le helper adapté à votre OS (cache, store, manager-core)
  • Comprendre les différences entre les helpers et leurs niveaux de sécurité
  • Gérer les tokens HTTPS et les clés SSH selon la plateforme
  • Éviter de retaper vos credentials à chaque opération réseau

Sans helper, Git demande le nom d’utilisateur et le mot de passe (ou token) à chaque push, pull et fetch via HTTPS. Un credential helper stocke ces identifiants pour les réutiliser automatiquement.

Stocke les identifiants en mémoire pendant 15 minutes (par défaut). Rien n’est écrit sur le disque :

Fenêtre de terminal
git config --global credential.helper cache
# Augmenter la durée à 1 heure (3600 secondes)
git config --global credential.helper 'cache --timeout=3600'

Idéal pour : sessions de travail courtes, machines partagées.

Enregistre les identifiants en clair dans ~/.git-credentials :

Fenêtre de terminal
git config --global credential.helper store

Le fichier contient :

https://user:token@github.com

Intégré avec le Trousseau d’accès macOS (Keychain) :

Fenêtre de terminal
git config --global credential.helper osxkeychain

Les identifiants sont stockés de façon chiffrée et accessibles via l’app Trousseau d’accès.

La solution recommandée. GCM fonctionne sur Linux, macOS et Windows. Il utilise le trousseau de clés natif de l’OS et prend en charge l’authentification OAuth/SAML pour GitHub, GitLab, Azure DevOps et Bitbucket.

Fenêtre de terminal
# macOS (via Homebrew)
brew install --cask git-credential-manager
# Linux (Debian/Ubuntu)
curl -fsSL https://aka.ms/gcm/linux-install-source.sh | sh
git-credential-manager configure
# Windows (inclus dans Git for Windows)
# Déjà installé et configuré
Fenêtre de terminal
git config --global credential.helper manager
# Vérifier
git config --global credential.helper
# manager

GCM ouvre automatiquement le navigateur pour l’authentification OAuth au premier push/pull. Le token obtenu est stocké dans le trousseau de clés de l’OS.

FonctionnalitéDétail
OAuth / SAMLAuthentification via navigateur
Stockage sécuriséKeychain (macOS), Secret Service (Linux), Credential Manager (Windows)
Multi-comptesGestion de plusieurs comptes par plateforme
ProxySupport des proxies d’entreprise
PlateformesGitHub, GitLab, Azure DevOps, Bitbucket
CritèreSSH keysHTTPS + token
ConfigurationGénération de clé + ajout sur la plateformeToken + credential helper
SécuritéClé privée chiffrée (passphrase)Token révocable, scoped
Pare-feuPort 22 (parfois bloqué)Port 443 (rarement bloqué)
Multi-comptes1 clé par compte (SSH config)1 token par scope
ExpirationPas d’expiration (sauf rotation manuelle)Configurable (30/90/365 jours)
CI/CDDeploy keysTokens de service
FacilitéSetup initial plus complexePlus simple avec GCM
  • Développeur solo : SSH ed25519 (setup unique, pas de token à renouveler)
  • Équipe avec SSO : HTTPS + GCM (OAuth intégré)
  • CI/CD : HTTPS + token de service (scoped, révocable)
  • Derrière un pare-feu : HTTPS (port 443), SSH sur port 443 en fallback

Les plateformes Git utilisent des tokens au lieu des mots de passe :

  1. Settings → Developer settings → Personal access tokens → Fine-grained
  2. Sélectionnez les permissions (repo, workflow…)
  3. Copiez le token, utilisez-le comme mot de passe
  1. User Settings → Access Tokens
  2. Sélectionnez les scopes (read_repository, write_repository…)
  3. Copiez le token
  • Scoped : donnez le minimum de permissions
  • Expiration : configurez une date d’expiration
  • Rotation : renouvelez régulièrement
  • Jamais dans le code : utilisez des variables d’environnement ou un credential helper
# Compte personnel
Host github-perso
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_perso
# Compte pro
Host github-pro
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_pro
Fenêtre de terminal
git clone git@github-perso:user/repo.git # Compte perso
git clone git@github-pro:org/repo.git # Compte pro
~/.gitconfig
[includeIf "gitdir:~/perso/"]
path = ~/.gitconfig-perso
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
~/.gitconfig-perso
[user]
email = perso@example.com
[credential "https://github.com"]
username = user-perso
SymptômeCause probableSolution
Git redemande le mot de passePas de credential helperConfigurez cache, store ou GCM
remote: Support for password authentication was removedGitHub n’accepte plus les mots de passeUtilisez un PAT ou SSH
Token refusé sur un repoPermissions insuffisantesVérifiez les scopes du token
GCM n’ouvre pas le navigateurVariable DISPLAY manquante (Linux)export GIT_TERMINAL_PROMPT=1 ou configurez le secret store
Mauvais compte utiliséMulti-comptes mal configuréVérifiez ~/.ssh/config ou includeIf
  • cache : temporaire (mémoire), pour les sessions courtes
  • store : persistant en clair — à éviter si possible
  • GCM : recommandé — stockage sécurisé dans le trousseau de l’OS
  • SSH keys : setup unique, idéal pour les développeurs solo
  • HTTPS + token : plus simple avec GCM, meilleur pour les équipes SSO
  • Tokens : toujours scoped, avec expiration, jamais dans le code

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn