Éviter la saisie répétée de la passphrase SSH avec ssh-agent
Configurer ssh-agent pour GitHub afin de ne pas retaper la passphrase à chaque git push, avec persistance macOS et usage Linux.
Objectif
Si votre clé privée SSH est protégée par une passphrase, ssh-agent permet de la déverrouiller une fois par session au lieu de la saisir à chaque git push.
Pré-requis opérationnel: la clé publique correspondante doit être ajoutée à votre compte GitHub.
Démarrage rapide
eval "$(ssh-agent)"
ssh-add ~/.ssh/id_rsa
ssh-add -l
eval "$(ssh-agent)"démarre l’agent dans la session courante.ssh-add ~/.ssh/id_rsacharge la clé privée dans l’agent.ssh-add -lvérifie les clés actuellement chargées.
Persistance selon l’OS
macOS (Keychain)
ssh-add --apple-use-keychain ~/.ssh/id_rsa
ssh-add -l
Cette option stocke la passphrase dans le trousseau macOS pour éviter de la ressaisir à chaque nouvelle session.
Linux (session)
eval "$(ssh-agent)"
ssh-add ~/.ssh/id_rsa
ssh-add -l
Sous Linux, c’est généralement lié à la session utilisateur: relancer l’agent après redémarrage/fermeture de session.
Pièges courants
- Démarrer
ssh-agentdans un shell, puis exécutergit pushdans un autre shell non lié à cet agent. - Charger la mauvaise clé (
id_rsavs autre nom de fichier). - Oublier d’ajouter la clé publique sur GitHub.
- Avoir des permissions trop ouvertes sur
~/.sshou la clé privée. - Mélanger plusieurs clés sans vérifier l’ordre/priorité côté client SSH.
Bonnes pratiques
- Pour une nouvelle clé, préférer
ed25519plutôt quersa. - Garder une passphrase forte sur la clé privée.
- Vérifier régulièrement les clés actives avec
ssh-add -l. - Limiter le nombre de clés chargées dans l’agent.
- Séparer les clés par contexte (pro/perso) avec une configuration SSH explicite.