git@github.com: Permission denied (publickey)
Cette erreur signifie que GitHub a refusé ta connexion SSH parce qu'il n'a pas pu t'authentifier avec une clé. Ton code est en sécurité. Il te suffit de configurer une clé SSH une fois, et ça prend cinq minutes.
Ce que cette erreur signifie
Quand tu utilises une URL SSH comme git@github.com:team/project.git, Git s'authentifie avec une paire de clés SSH au lieu d'un mot de passe. GitHub vérifie si ta machine propose une clé privée correspondant à une clé publique enregistrée sur ton compte. Si aucune clé ne correspond, la connexion est refusée avant même que Git puisse agir.
Pourquoi cela se produit
Aucune clé SSH sur cette machine
Un ordinateur neuf ou un nouveau compte utilisateur n'a aucune paire de clés dans ~/.ssh. GitHub n'a rien à comparer, donc chaque connexion SSH est rejetée.
Clé jamais ajoutée sur GitHub
Tu as généré une clé mais tu n'as jamais enregistré la partie publique sur GitHub. La clé existe en local, mais GitHub ne sait pas qu'elle appartient à ton compte.
L'agent ne propose pas la clé
La clé existe et elle est sur GitHub, mais l'agent SSH ne l'a pas chargée, ou SSH propose une autre clé en premier. Fréquent après un redémarrage ou avec plusieurs clés.
Comment corriger
Génère une clé, ajoute-la à l'agent et à GitHub, puis teste. Tu ne le fais qu'une fois par machine.
Générer et charger une clé
Vérifie d'abord si une clé existe. Sinon, crée une clé Ed25519 et ajoute-la à l'agent.
Enregistrer sur GitHub et tester
Copie la clé publique sur GitHub, puis vérifie avec ssh -T.
Pas de SSH ? Utilise HTTPS
Si tu ne peux pas utiliser SSH (réseau verrouillé, machine partagée), passe le remote en HTTPS et authentifie-toi avec un personal access token ou un gestionnaire d'identifiants.
Comment éviter cette erreur
Une clé par machine
Génère une clé dédiée sur chaque ordinateur que tu utilises et enregistre chacune sur GitHub. Ne copie jamais une clé privée d'une machine à l'autre.
Teste après chaque changement
Après une mise à jour de l'OS, une réinstallation ou une nouvelle clé, lance ssh -T git@github.com avant d'avoir un push urgent à faire.
Passphrase + agent SSH
Protège ta clé privée avec une passphrase et laisse l'agent SSH (ou le trousseau de ton OS) la retenir. La sécurité sans la retaper à chaque fois.
GitQuest est conçu par Anaïs (nouvelle fenêtre), développeuse web et responsable pédagogique, spécialisée en formations tech et accessibilité numérique.
Questions sur Permission denied (publickey)
Comprendre Git plutôt que mémoriser des solutions
GitQuest t'apprend comment Git et les remotes fonctionnent vraiment à travers des enquêtes pratiques, pour que ce genre d'erreur ne soit plus jamais un mystère.
Commencer à pratiquer