Files
abonnel-www/a39e992f-3f28-44ca-9f04-5f1d5f8cd5d9/index.md
T
2026-05-15 23:56:16 +02:00

6.6 KiB

Enregistrer vos identifiants Git

Lorsque vous travaillez avec un dépôt Git distant en HTTPS (GitHub, GitLab, Bitbucket…), Git vous demande de vous authentifier à chaque opération réseau (push, pull, fetch…). Pour éviter de saisir vos identifiants à chaque fois, Git propose un système de credential helpers qui mémorisent ces informations de manière plus ou moins sécurisée.

Important : la fin du mot de passe sur les principales plateformes. Depuis août 2021, GitHub n'accepte plus le mot de passe de votre compte pour les opérations Git en HTTPS. Bitbucket Cloud a fait de même. Vous devez utiliser à la place :

  • un Personal Access Token (PAT), que vous générez depuis les paramètres de votre compte ;
  • ou une clé SSH (l'URL du dépôt commence alors par git@… au lieu de https://) ;
  • ou un flux OAuth géré automatiquement par Git Credential Manager (voir plus bas).

Dans tout ce qui suit, là où on parle de « mot de passe », il faut comprendre « PAT » pour ces plateformes.

Configurer votre identité (≠ vos identifiants)

Avant toute chose, ne confondez pas votre identité (le nom et l'e-mail inscrits dans chaque commit) avec vos identifiants (ce qui sert à vous authentifier auprès du serveur).

L'identité se configure ainsi :

git config --global user.name "Votre nom"
git config --global user.email "vous@exemple.com"

Il n'existe pas de propriété user.password dans Git. Une commande comme git config --global user.password "…" n'aura aucun effet sur l'authentification ; elle ne fera qu'écrire une clé inutile dans votre ~/.gitconfig. Pour stocker un mot de passe ou un token, utilisez un credential helper, décrit ci-dessous.

Le mécanisme des credential helpers

Un credential helper est un petit programme externe que Git interroge pour obtenir vos identifiants. La configuration générale est :

git config --global credential.helper <helper>

Plusieurs helpers existent, du moins au plus sécurisé.

cache — mémoire vive, temporaire

cache garde vos identifiants en mémoire pendant une durée limitée (15 minutes par défaut), sans jamais les écrire sur le disque. Pratique sur un serveur de déploiement, par exemple.

git config --global credential.helper cache

Pour augmenter la durée — par exemple à une heure — le timeout se passe en argument au helper, pas comme clé de configuration séparée :

git config --global credential.helper 'cache --timeout=3600'

store — fichier en clair sur le disque

git config --global credential.helper store

store enregistre vos identifiants de façon permanente dans ~/.git-credentials. Attention : ce fichier est en clair. N'importe qui ayant accès à votre compte utilisateur (ou à une sauvegarde non chiffrée) peut le lire. À éviter sauf cas très spécifiques (machine isolée, token à portée réduite et lecture seule, etc.).

macOS — osxkeychain

Sur macOS, Git est livré avec un helper qui stocke vos identifiants dans le trousseau du système (Keychain), chiffré et déverrouillé avec votre session :

git config --global credential.helper osxkeychain

C'est généralement configuré par défaut sur les installations récentes.

Windows — wincred / Git Credential Manager

Git pour Windows inclut Git Credential Manager (GCM), qui stocke les identifiants dans le Windows Credential Manager et gère OAuth pour les principales plateformes. Aucune configuration n'est nécessaire dans la plupart des cas : GCM est activé par défaut.

Linux — libsecret (et non plus gnome-keyring)

L'ancien helper git-credential-gnome-keyring est déprécié. Le helper recommandé aujourd'hui sur les bureaux Linux est libsecret, qui parle au service Secret Service (GNOME Keyring, KWallet via un pont, etc.) via une API standardisée.

Sur Fedora / RHEL, un binaire est généralement déjà présent :

git config --global credential.helper /usr/libexec/git-core/git-credential-libsecret

Sur Debian / Ubuntu, le helper est livré sous forme de code source qu'il faut compiler une fois (c'est rapide) :

sudo apt install make gcc libsecret-1-0 libsecret-1-dev libglib2.0-dev
sudo make --directory=/usr/share/doc/git/contrib/credential/libsecret
git config --global credential.helper \
    /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Lors du prochain git push ou git clone, Git vous demandera vos identifiants une fois, puis les stockera dans le trousseau du système. Les opérations suivantes seront authentifiées automatiquement.

Git Credential Manager (GCM) — solution moderne multiplateforme

Git Credential Manager est le helper officiellement recommandé par GitHub aujourd'hui. Il fonctionne sur Windows, macOS et Linux, et gère en plus l'authentification OAuth (ouverture d'un navigateur, 2FA, jetons rafraîchis automatiquement) pour GitHub, GitLab, Bitbucket et Azure DevOps.

Sur Windows et macOS, il est généralement installé avec Git. Sur Linux, il faut le télécharger depuis la page des releases du projet puis le configurer :

git-credential-manager configure

Sur Linux, GCM peut être adossé à libsecret pour le stockage :

git config --global credential.credentialStore secretservice

Alternative : GitHub CLI

Si vous utilisez GitHub, l'outil gh configure automatiquement Git pour utiliser vos identifiants GitHub :

gh auth login

gh se charge du token, du helper, et de tout le reste.

Et les clés SSH ?

Pour de nombreux développeurs, la solution la plus simple reste d'utiliser une clé SSH plutôt qu'HTTPS. Vous générez une paire de clés (ssh-keygen -t ed25519), vous ajoutez la clé publique sur votre compte GitHub/GitLab, et vous utilisez les URLs git@…. Plus de question de mot de passe ni de token à renouveler.

Récapitulatif

Helper Plateforme Sécurité Commentaire
cache Toutes Bonne (mémoire seulement) Temporaire, à réauthentifier régulièrement
store Toutes Faible (fichier en clair) À éviter
osxkeychain macOS Bonne (Keychain chiffré) Par défaut sur macOS
wincred / GCM Windows Bonne Par défaut sur Git for Windows
libsecret Linux Bonne (trousseau système) Remplace gnome-keyring
GCM Windows / macOS / Linux Très bonne (OAuth, 2FA) Recommandé par GitHub
Clé SSH Toutes Très bonne Alternative à HTTPS