Skip to main content

Erreur : Autorisation refusée (clé publique)

L’erreur « Autorisation refusée » signifie que le serveur a rejeté votre connexion. Il peut y avoir plusieurs raisons à cela, et les exemples les plus courants vous sont expliqués ci-dessous.

Platform navigation

La commande sudo ou les privilèges élevés doivent-ils être utilisés avec Git ?

Vous ne devez pas utiliser la commande sudo ou les privilèges élevés, tels que les autorisations d’administrateur, avec Git. Si vous avez une très bonne raison d’utiliser sudo, assurez-vous que vous l’utilisez avec chaque commande (il est probablement préférable d’utiliser su pour obtenir un interpréteur de commandes comme racine à ce stade). Si vous générez des clés SSH sans sudo puis essayez d’utiliser une commande comme sudo git push, vous n’utiliserez pas les mêmes clés que celles que vous avez générées.

Vérifier que vous vous connectez au serveur approprié

La frappe est contraignante, nous le savons tous. Faites attention à ce que vous tapez ; vous ne pouvez pas vous connecter à « githib.com » ou « guthub.com ». Dans certains cas, un réseau d’entreprise peut également provoquer des problèmes de résolution de l’enregistrement DNS.

Pour vous assurer que vous vous connectez au domaine approprié, vous pouvez entrer la commande suivante :

$ ssh -vT git@github.com
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to github.com port 22.

La connexion doit être établie sur le port 22, sauf si vous remplacez les paramètres pour utiliser SSH via HTTPS.

Utiliser toujours l’utilisateur « git »

Toutes les connexions, y compris celles des URL distantes, doivent être effectuées en tant qu’utilisateur « git ». Si vous essayez de vous connecter avec votre nom d’utilisateur GitHub Enterprise Cloud, l’opération échoue :

$ ssh -T GITHUB-USERNAME@github.com
> Permission denied (publickey).

Si votre connexion a échoué et que vous utilisez une URL distante avec votre nom d’utilisateur GitHub Enterprise Cloud, vous pouvez changer l’URL distante pour utiliser l’utilisateur « git ».

Vous devez vérifier votre connexion en tapant :

$ ssh -T git@github.com
> Hi USERNAME! You've successfully authenticated...

Vérifier que vous disposez d’une clé en cours d’utilisation

  1. Ouvrez TerminalTerminalGit Bash.

  2. Vérifiez que vous avez une clé privée générée et chargée dans SSH.

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l -E sha256
    > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
    

Si vous avez installé GitHub Desktop, vous pouvez l’utiliser pour cloner des référentiels, sans utiliser de clés SSH.

  1. Si vous utilisez Git Bash, activez ssh-agent :

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    Si vous utilisez une autre invite de terminal, telle que Git pour Windows, activez ssh-agent :

    # start the ssh-agent in the background
    $ eval $(ssh-agent -s)
    > Agent pid 59566
    

    Remarque : Les commandes eval ci-dessus démarrent manuellement ssh-agent dans votre environnement. Ces commandes peuvent échouer si ssh-agent s’exécute déjà en tant que service système en arrière-plan. Si cela se produit, nous vous recommandons de consulter la documentation appropriée pour votre environnement.

  2. Vérifiez que vous avez une clé privée générée et chargée dans SSH.

    $ ssh-add -l -E sha256
    > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
    
  1. Ouvrez TerminalTerminalGit Bash.

  2. Vérifiez que vous avez une clé privée générée et chargée dans SSH.

    $ ssh-add -l -E sha256
    > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
    

La commande ssh-add doit afficher une longue chaîne de chiffres et de lettres. Si elle n’affiche rien, vous devez générer une nouvelle clé SSH et l’associer à GitHub Enterprise Cloud.

Conseil : Sur la plupart des systèmes, les clés privées par défaut (~/.ssh/id_rsa et ~/.ssh/identity) sont automatiquement ajoutées à l’agent d’authentification SSH. Vous n’avez pas besoin d’exécuter ssh-add path/to/key, sauf si vous remplacez le nom de fichier quand vous générez une clé.

Obtention de détails supplémentaires

Vous pouvez également vérifier que la clé est en cours d’utilisation en essayant de vous connecter à git@github.com :

$ ssh -vT git@github.com
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).

Dans cet exemple, nous n’avons pas de clés utilisable par SSH. La chaîne « -1 » à la fin des lignes « identity file » signifie que SSH n’a pas pu trouver de fichier à utiliser. Plus loin, les lignes « Trying private key » indiquent également qu’aucun fichier n’a été trouvé. Si un fichier existait, ces lignes indiqueraient « 1 » et « Offering public key », respectivement :

$ ssh -vT git@github.com
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa

Vérifier que la clé publique est attachée à votre compte

Vous devez fournir votre clé publique à GitHub Enterprise Cloud pour établir une connexion sécurisée.

  1. Ouvrez le terminal.

  2. Démarrez l’agent SSH en arrière-plan.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    
  3. Recherchez et notez l’empreinte digitale de votre clé publique.

    $ ssh-add -l -E sha256
    > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
    
  4. Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  5. Dans la section « Accès » de la barre latérale, cliquez sur Clés SSH et GPG.

  6. Comparez la liste des clés SSH à la sortie de la commande ssh-add.

  1. Ouvrez la ligne de commande.

  2. Démarrez l’agent SSH en arrière-plan.

    $ ssh-agent -s
    > Agent pid 59566
    
  3. Recherchez et notez l’empreinte digitale de votre clé publique.

    $ ssh-add -l -E sha256
    > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
    
  4. Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  5. Dans la section « Accès » de la barre latérale, cliquez sur Clés SSH et GPG.

  6. Comparez la liste des clés SSH à la sortie de la commande ssh-add.

  1. Ouvrez le terminal.

  2. Démarrez l’agent SSH en arrière-plan.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    
  3. Recherchez et notez l’empreinte digitale de votre clé publique. Si vous utilisez OpenSSH 6.7 ou version antérieure :

    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
    

    Si vous utilisez OpenSSH 6.8 ou version ultérieure :

    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
    
  4. Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  5. Dans la section « Accès » de la barre latérale, cliquez sur Clés SSH et GPG.

  6. Comparez la liste des clés SSH à la sortie de la commande ssh-add.

Si vous ne voyez pas votre clé publique dans GitHub Enterprise Cloud, vous devez ajouter votre clé SSH à GitHub Enterprise Cloud pour l’associer à votre ordinateur.

Avertissement : Si vous voyez une clé SSH que vous ne connaissez pas sur GitHub Enterprise Cloud, supprimez-la immédiatement et contactez le pour obtenir de l’aide. Une clé publique non identifiée peut indiquer un problème de sécurité. Pour plus d’informations, consultez « Examen de vos clés SSH ».