git / Guides

Git SSH : résoudre Permission denied (publickey)

Cette erreur signifie que le serveur SSH a refusé l’authentification. Ces exemples visent github.com ; les autres fournisseurs et hôtes d’entreprise peuvent nécessiter des réglages différents.

Les exemples utilisent Bash ; consultez les références pour les détails de votre environnement.

git — Aide-mémoire

Vérifier le dépôt distant et le protocole

Exécutez la commande dans le dépôt. Une URL HTTPS utilise des identifiants HTTPS ; corriger une clé SSH ne change pas cette connexion. Une URL SSH GitHub commence généralement par git@github.com:.

git remote -v

Sur github.com, l’utilisateur SSH est git, pas votre nom de compte. Vérifiez le propriétaire et le nom du dépôt avant de modifier l’URL. Changer de protocole peut masquer le problème initial.

Vérifier les clés disponibles dans l’agent

Listez les identités disponibles dans votre agent SSH actuel. Une absence d’identités diffère d’un agent inaccessible. La configuration dépend du système et du terminal.

ssh-add -l

Si votre clé existante n’est pas chargée, ajoutez son véritable chemin, par exemple ssh-add ~/.ssh/id_ed25519. Enregistrez la clé publique .pub correspondante dans le bon compte GitHub. Gardez la clé privée sur votre appareil et ne la collez pas dans un site.

Tester l’authentification GitHub

Avant d’accepter une nouvelle clé d’hôte, comparez son empreinte aux empreintes SSH publiées par GitHub, accessibles dans le guide officiel ci-dessous. Lancez ensuite le test.

ssh -T git@github.com

Le message de réussite GitHub nomme votre compte et précise que l’accès shell n’est pas fourni. Ce test réussi se termine normalement avec le code 1. En cas d’échec, ssh -vT git@github.com montre les identités proposées. Exécuter Git avec sudo peut sélectionner les clés d’un autre utilisateur.

Distinguer authentification et accès au dépôt

Après un test SSH réussi, vérifiez la lecture du dépôt. Cette commande liste les références distantes sans modifier les branches locales.

git ls-remote origin

Le compte authentifié doit aussi disposer de l’accès au dépôt. Vérifiez l’URL, l’appartenance à l’organisation et toute autorisation SSO nécessaire. Une deploy key peut être limitée à un seul dépôt. Si aucune clé n’existe, suivez le guide du fournisseur sans écraser une clé existante.

Références

Tous les guides