Git push se traduit par «Échec de l'authentification»

707

J'utilise Github pour un peu de temps et je suis très bien avec git add, git commitet git pushjusqu'à présent sans problème. Soudain, j'ai une erreur qui dit:

fatal: échec de l'authentification

Dans le terminal, j'ai cloné un référentiel, travaillé sur un fichier, puis j'ai git addajouté le fichier au journal de validation et quand je l'ai fait git commit, cela a bien fonctionné. Enfin, git pushdemande un nom d'utilisateur et un mot de passe. Je les mets correctement et chaque fois que je fais cela, cela dit la même erreur.

Quelqu'un a-t-il une idée de la cause de ce problème et comment le résoudre?

Le contenu de .git/configest:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############
zkirkland
la source
quel est votre nom d'utilisateur sur github et quel est le contenu de .git / config?
mnagel
ajoutez-le à la question, les commentaires ne
résistent
Ouais désolé, j'ai commencé le commentaire par habitude, puis je l'ai changé.
zkirkland
Votre URL ne semble pas correcte. Je pense que cela devrait commencer par https://, non http://.
John Szakmeister
Modifié en https ... n'a pas fonctionné.
zkirkland

Réponses:

1204

Si vous avez activé l'authentification à deux facteurs dans votre compte Github, vous ne pourrez pas pousser via HTTPS en utilisant le mot de passe de votre compte. Au lieu de cela, vous devez générer un jeton d'accès personnel. Cela peut être fait dans les paramètres d'application de votre compte Github. L'utilisation de ce jeton comme mot de passe devrait vous permettre d'accéder à votre référentiel distant via HTTPS. Utilisez votre nom d'utilisateur comme d'habitude.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Vous devrez peut-être également mettre à jour l'origine de votre référentiel s'il est défini sur https:

git remote -v 
git remote remove origin 
git remote add origin [email protected]:user/repo.git  
rc0r
la source
5
En effet. +1. Je présente PAT ici stackoverflow.com/a/19223896/6309 et détaille le processus là-bas: stackoverflow.com/a/18607931/6309
VonC
3
J'avais besoin de générer mes clés rsa pour que les opérations Git normales fonctionnent après avoir activé 2FA.
R11G
5
Je vous remercie! Juste eu cette erreur et cela a aidé, juste pour le souligner. Une fois que vous avez créé votre jeton d'accès personnel, vous le copiez, puis lorsque vous appuyez sur le dépôt, il vous demandera votre nom d'utilisateur et votre mot de passe. Collez le jeton d'accès dans le mot de passe
pourmesomecode
87
vous pouvez également faire git remote add origin https://username:[email protected]/username/repo.gitpour stocker votre jeton d'accès personnel.
mailmindlin
2
Pour moi, tout ce que j'avais à faire était d'activer l'authentification SSH depuis ma machine locale sur mon compte GitHub, puis de basculer vers l'adresse distante ssh git; help.github.com/articles/changing-a-remote-s-url
user5359531
605

Essayez les étapes suivantes pour modifier ou supprimer les informations d'identification enregistrées:

  1. Cliquez sur Démarrer
  2. Type: Credential Manager (Sous Windows 10, c'est sous "Démarrer-> Paramètres". Recherchez ensuite "Credential Manager")
  3. Consultez le Windows Credentials Managerraccourci et double-cliquez dessus pour ouvrir l'application.
  4. Une fois l'application ouverte, cliquez sur l' Windows Credentialsonglet.
  5. Recherchez les informations d'identification que vous souhaitez supprimer / mettre à jour, elles commenceront par "git:" et pourraient commencer par "ada:"
  6. Cliquez sur l'entrée d'identification, elle ouvrira une vue détaillée de l'entrée.
  7. Cliquez sur Modifier ou Supprimer selon les besoins et confirmez.
  8. Laver, rincer, répéter au besoin.

entrez la description de l'image ici

Pradeep
la source
2
Dans mon cas, ce n'est pas dans "Windows Credentials" mais dans "Generic Credentials". Supprimer les informations d'identification, faites l'affaire.
Toni Gamez
8
Vous pouvez ouvrir la fenêtre ci-dessus par (windows + R) -> "control / name Microsoft.CredentialManager"
Sufiyan Ansari
Les informations d'identification peuvent être là, mais sans «git:» devant lui. Cela ne fonctionnera pas. Il faut commencer par 'git:'
Marques
1
Mon employeur a défini l'authentification Windows sur Git Hub, donc chaque fois que je modifiais mes informations d'identification Windows, je devais le mettre à jour pour le contrôle de code source. Votre réponse a fonctionné.
shary.sharath
1
Réponse fantastique. Nous maintenons un référentiel BitBucket interne, où chacune de nos informations d'identification de compte est authentifiée auprès de notre organisation. Récemment, tous mes référentiels sont devenus indisponibles pour pousser les modifications de code. Alors que j'avais pu changer les informations d'identification au cas par cas, je ne voulais vraiment pas le faire pour chaque projet. L'approche de Pradeep m'a permis de résoudre la cause sous-jacente, qui était plus qu'un simple changement de mot de passe. Notre organisation a récemment changé le nom du domaine interne, donc en modifiant les informations d'identification de manière centralisée, j'ai pu corriger tous mes projets.
Michael M
79

Cela a fonctionné pour moi, et il se souvient également de mes informations d'identification:

  1. Exécutez gitbash

  2. Pointez sur le répertoire repo

  3. Courir git config --global credential.helper wincred

Utukku
la source
18
Cela m'a pris un certain temps pour savoir ce que cela fait - il utilise le gestionnaire d'informations d'identification dans le panneau de configuration de Windows. Pour arrêter de l'utiliser: git config –global credential.helper unset Source , et plus de détails dans cette réponse .
Ian W
7
@IanW Voulez-vous dire git config --global --unset credential.helper? C'est ce qui a fonctionné pour moi à Git Bash.
Ellen Spertus
1
Soyez prudent avec cette commande, elle remplacera le chemin réel vers votre assistant d'informations d'identification par simplement "wincred" qui, apparemment, n'est pas ce dont vous avez besoin.
amarax
2
J'ai exécuté cette commande pour découvrir que ce n'est pas ce que je voulais, la bonne façon de le désactiver est git config --global --unset credential.helper. Finalement, j'ai restauré mon réglage correct avec git config credential.helper store.
Omar
Ça m'aide! Merci!
Jefsama
70

Pouvez-vous avoir changé de mot de passe récemment pour votre compte git Vous pouvez essayer l' option git pushavec-u

git push -u origin branch_name_that_you_want_to_push

Après avoir exécuté la commande ci-dessus, il vous demandera un mot de passe, fournissez votre mot de passe mis à jour

J'espère que cela peut vous aider

Utilisateurs9949
la source
cela fonctionne, dont mon environnement n'a besoin httpsque
BMW
1
Certainement beaucoup plus facile que la plupart des réponses. (Et changer les mots de passe devrait être la raison la plus courante pour obtenir une erreur d'authentification ;-))
Michel
si vous rencontrez cela sur un clone existant - alors faites juste ungit push -u
Ajay Chebbi
64

Tout d'abord, vous pouvez vous assurer d'utiliser l'URL appropriée:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Ensuite, si cela fonctionnait auparavant, et s'il ne vous demandait pas votre nom d'utilisateur, cela devait être parce que vous aviez stocké vos informations d'identification (login / mot de passe) dans un $HOME/.netrcfichier, comme expliqué ici . Vous pouvez revérifier ces paramètres et vous assurer que votre proxy, si vous en avez un, n'a pas changé.

Si cela ne fonctionne toujours pas, vous pouvez basculer vers une URL ssh:

git remote set-url origin [email protected]:zkirkland/Random-Python-Tests.git

Mais cela signifie que vous avez publié votre clé publique ssh dans les paramètres de votre compte .

VonC
la source
9
Le passage de HTTPS à SSH a résolu le problème pour moi.
leymannx
3
J'avais activé l'authentification à 2 facteurs pour mon compte GH et le basculement de l'URL distante vers SSH depuis HTTPS a résolu le problème "échec d'authentification" pour moi. Logique. Merci!
Walter Roman
56

Cela se produit si vous modifiez votre identifiant ou votre mot de passe de compte de service git (Git). Vous devez également le modifier dans le Gestionnaire d'informations d'identification Windows . tapez "Credential Manager" dans le menu de recherche de Windows, ouvrez-le.

Gestionnaire d'informations d'identification Windows-> Informations d'identification Windows et sous Informations d'identification génériques, modifiez votre mot de passe git.

Atif AbbAsi
la source
4
Cela m'a sauvé lorsque je travaillais avec GitLab (quand à peu près rien d'autre n'a aidé). Merci!
John Humphreys - w00te
2
Je n'avais jamais entendu parler de ce gestionnaire d'informations d'identification Windows ... Merci!
Sam
1
J'ai donné des informations d'identification erronées lorsque Git m'a demandé l'ID utilisateur et le mot de passe lors de la transmission de nouveaux fichiers vers le référentiel distant. Lorsque j'ai exécuté à nouveau la commande push, git ne m'a pas demandé d'informations d'identification, mais à la place, il n'a généré qu'une erreur d'échec d'authentification. J'ai réalisé après avoir lu cette réponse que git utilise des informations d'identification stockées dans le gestionnaire d'informations d'identification et que cela devrait être la raison pour laquelle git ne demande pas de mot de passe chaque fois que nous poussons dans un référentiel distant. J'ai supprimé le mot de passe git dans le gestionnaire d'informations d'identification, après quoi git m'a de nouveau demandé un identifiant et un mot de passe.
Jchenna
41

Fondamentalement, mes informations d'identification ont expiré et j'étais confronté au problème ci-dessus.

Suivre 2 commandes m'a aidé:

git config --global --unset credential.helper

git config credential.helper store

Il vous demandera des informations d'identification la prochaine fois que vous essayez de pousser.

Suivez les instructions ci-dessous pour plus de détails sur le stockage sécurisé et non sécurisé du nom d'utilisateur et des mots de passe:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache

Jems
la source
Cela a fonctionné pour moi après avoir changé mon mot de passe sur Github et n'avais pas changé mes informations d'identification localement.
Scott
33

Si vous avez trouvé un problème d'erreur d'authentification lorsque vous avez entré le mot de passe et le nom d'utilisateur corrects, c'est un problème git. Pour résoudre ce problème lorsque vous installez git sur votre machine, décochez le gestionnaire d'activation des informations d'identification gitentrez la description de l'image ici

Hoque MD Zahidul
la source
1
Cela a résolu mon problème
user1929819
fixe le mien aussi. Mille mercis!
Brian Edwards
Je ne trouve pas ce type de solution. J'ai réinstallé le git
Hoque MD Zahidul
Correction de mon problème aussi (git a été installé, il suffit de le réinstaller en décochant ceci: et ça va!)
manatlan
1
J'ai également dû cocher «Utiliser la bibliothèque native de Windows Secure Channel». Elle n'est pas cochée par défaut.
doptrois
25

Je pense que pour une raison quelconque, GitHub s'attend à ce que l'URL n'ait PAS de sous-domaine www. Quand j'utilise (par exemple)

git remote set-url origin https://www.github.com/name/repo.git

il donne les messages suivants:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

Cependant, si j'utilise

git remote set-url origin https://github.com/name/repo.git

cela fonctionne parfaitement bien. Cela n'a pas trop de sens pour moi ... mais je suppose que je me souviens de ne pas mettre www dans l'URL distante pour les référentiels GitHub.

Notez également que les URL de clonage fournies sur la page Web du référentiel GitHub n'incluent pas le www.

Electo
la source
4
Ne pas mettre "www" sur "github.com" fonctionne. Étant donné que cela compte, Github devrait réparer leur site afin que vous ne puissiez pas cloner en utilisant "www".
John Nagle
1
Merci:) Mon URL manquait le .git, et ce commentaire m'a amené à y jeter un œil et à le comprendre.
19

Salut, je recevais la même erreur, j'ai essayé toutes les solutions mentionnées dans cette page, mais cela n'a pas fonctionné. Enfin, j'ai trouvé la solution, j'ai donc pensé à la poster. Veuillez me corriger si je me trompe quelque part. Ce type d'erreur survient si le mot de passe de votre système a parfois changé récemment à tout moment. Il essaiera de valider à partir de l'ancien mot de passe. Alors, suivez ces étapes:

  1. Accédez au panneau de configuration
  2. Cliquez sur Comptes d'utilisateurs
  3. Sous Gestionnaire d'informations d'identification
  4. Accédez à Gérer les informations d'identification Windows
  5. Accéder aux informations d'identification génériques
  6. Développer l'onglet du serveur git
  7. cliquez sur Supprimer du coffre-fort

    • Vous pouvez également cliquer sur modifier et modifier directement votre mot de passe stocké ici.
Kamala Hanchinal
la source
10

Je suis tombé sur "$ git fetch fatal: l'authentification a échoué pour 'http: // ...." après que mon mot de passe Windows a expiré et a été changé. Plusieurs récupérations, redémarrage et même réinstallation de git avec le gestionnaire d'informations d'identification Windows n'ont pas aidé.

Étonnamment la bonne réponse quelque part ici dans les commentaires mais pas dans les réponses (et certains d'entre eux sont vraiment bizarres!). Vous devez aller dans Panneau de configuration -> Credential Manager / Windows Credentials et mettre à jour votre mot de passe pour git: http: // yourrepoaddress

amarax
la source
9

Je ne suis pas vraiment sûr de ce que j'ai fait pour obtenir cette erreur, mais en faisant:

git remote set-url origin https://...

n'a pas fonctionné pour moi. Toutefois:

git remote set-url origin [email protected]:user/repo

en quelque sorte travaillé.

Kafeaulait
la source
3
Vous êtes passé de https à ssh
James Wierzba
Cela fonctionne aussi pour moi. Ce n'est pas magique, c'est parce que j'ai stocké la configuration pour l'accès ssh (avec une clé publique configurée), qui ne sont pas récupérées pour l'accès https (qui est utilisateur / pass + MFA).
Daniel Dubovski
8

J'ai eu le même problème. J'ai défini l'URL de cette façon:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

J'ai aussi retiré du fichier de configuration cette entrée: askpass = /bin/echo. Ensuite, "git push" m'a demandé le nom d'utilisateur et le mot de passe et cette fois, cela a fonctionné.

Bartosz
la source
Je ne l' ai pas besoin de retirer du fichier de configuration cette entrée: askpass = /bin/echo.
Darius Miliauskas
6

Dans mon cas, j'ai récemment changé mon mot de passe Windows et j'ai configuré la clé SSH pour les actions liées à git (tirer, pousser, récupérer, etc.), après avoir rencontré l'erreur "fatal: échec de l'authentification", j'ai mis à jour mon mot de passe dans les fenêtres gestionnaire d'informations d'identification (Panneau de configuration \ Comptes d'utilisateurs \ Gestionnaire d'informations d'identification) pour tous les éléments commençant par git: ..., et réessayé, a fonctionné cette fois!

Kiran Modini
la source
3

Si vous avez activé l'authentification à deux facteurs sur votre compte Github, connectez-vous à votre compte GitHub et accédez à: https://github.com/settings/tokens/new pour générer un nouveau jeton d'accès, copiez ce jeton et collez-le en tant que un mot de passe pour l'authentification dans le terminal.

RegarBoy
la source
2

Si vous êtes sur Windows et essayez de pousser vers un serveur Windows sur lequel des utilisateurs de domaine travaillent comme utilisateurs de référentiel (TFS), essayez d'entrer dans l'URL TFS (c'est-à-dire http:\\tfs) avec IE. entrez les informations d'identification de votre compte de domaine et laissez la page apparaître.

ATTENTION utilisez uniquement INTERNET EXPLORER! les autres navigateurs ne modifieront pas vos informations d'identification système.

Maintenant, allez dans git bash et changez votre utilisateur distant pour le référentiel comme ci-dessous:

git config user.name "domainName\userName"

Et maintenant, vous pouvez maintenant pousser!

AmiNadimi
la source
1

Pour moi, j'ai oublié que j'avais changé le mot de passe sur Github.com, et mon trousseau pour l'authentification shell n'a jamais été mis à jour avec ce nouveau mot de passe. Supprimer tout git de mon trousseau, puis relancer la demande git a aidé à résoudre le problème, me demandant à nouveau le nouveau mot de passe.

MMMdata
la source
1

Juste pour carillon ici, ce qui a résolu le problème pour moi, j'ai été simplement annulé à l'invite initiale, le ssh s'est ouvert avec mon compte bitbucket, j'ai entré le mot de passe là-bas et tout a fonctionné comme prévu.

Trevor Hart
la source
1

J'étais confronté au même problème sur Windows. La plupart du temps, je suis normalement confronté au problème en raison de l'utilisation de plusieurs comptes Git. Si vous êtes sous Windows, veuillez ouvrir le terminal en tant qu'administrateur et réessayer d'exécuter les commandes. Assurez-vous que vous disposez des droits d'accès administrateur.

Muema
la source
1

J'ajoutais à Bitbucket lié à Git et j'ai dû supprimer les clés stockées, car cela provoquait l'erreur fatale.

Pour résoudre, j'ai ouvert l'invite de commande et exécuté

 rundll32.exe keymgr.dll, KRShowKeyMgr

J'ai supprimé la clé qui était responsable de la connexion et la prochaine fois que j'ai poussé les fichiers vers le référentiel, j'ai été invité à entrer les informations d'identification et entré les bonnes, ce qui a abouti à une transmission réussie.

William Humphries
la source
0

J'ai également rencontré l'erreur (c'est pourquoi je suis arrivé ici), mais aucune des suggestions n'a fonctionné pour moi. C'était ma toute première fois que j'essayais de déployer Git local en azur. Lorsque j'ai eu cette erreur, j'ai réinitialisé mes informations d'identification (en cliquant sur le lien dans Azure) après quelques essais. Le problème est qu'à ce stade, il m'indique que mon nom d'utilisateur est déjà pris, donc j'ai également changé mon nom d'utilisateur pour un autre. Au final, j'ai supprimé manuellement le dossier .git sur mon lecteur local et l'ai redéployé sans problème.

homme nouveau
la source
0

Énoncé du problème: "Échec de l'authentification fatale git". J'utilise bitbucket.

Solution: j'ai simplement supprimé l'utilisateur de la gestion des accès de bitbucket, puis j'ai ajouté le même utilisateur. Le fichier .gitconfig est simple

[user]
    name = BlaBla
    email = [email protected]

[push]
    default = simple
J4cK
la source
0

avec des informations d'identification correctes si le problème persiste

si vous utilisez androidstudio 2.1 beta puis son bug, passez à la beta 2 (fichier de mise à jour de 3 Mo), cela a fonctionné pour moi

geniushkg
la source
0

Assurez-vous que vous avez l'autorisation d'écrire pour pousser.

read ***write*** admin 
Lay Leangsros
la source
0

Assurez-vous que votre clé ssh est ajoutée à votre session ssh actuelle.

  1. Copiez la sortie de cat ~/.ssh/id_rsa.pubvos paramètres GitHub sous les clés SSH et GPG.

  2. Mettez à jour votre session ssh actuelle avec ssh-add ~/.ssh/id_rsa.pub

J'utilise Windows Powershell avec Openssh installé.

Peter
la source
0

dans Android studio canary build 3.1+, si vous utilisez l'outil Android studio git, vous pouvez utiliser ce qui suit:

  • Cliquez sur Android Studio
  • Cliquez sur Préférences ...
  • GO dans VersionControl -> Github
  • Ici, changez le type d'authentification en mot de passe
  • Cette étape vous demandera d'entrer un identifiant et un mot de passe. Entrez votre nom d'utilisateur github comme identifiant et votre mot de passe github comme mot de passe.
  • Cliquez sur le bouton Test.

Si la connexion réussit, vous avez terminé et vous pouvez utiliser le client d'interface utilisateur Android Studio Github.

Tarun
la source
0

Si vous utilisez ssh et cloné avec https, cela ne fonctionnera pas. Cloner avec ssh puis pousser et tirer devrait fonctionner comme prévu!

GoldenWest
la source
0

Dans le cas où cela est tangentiellement utile, car cette question est maintenant un problème majeur pour les problèmes d'authentification http avec git: Windows Credential Manager avait stocké mon mot de passe correctement, et puisque j'utilisais Git LFS, j'ai configuré une URL http au lieu du ssh habituel: / / .

Mon problème était que ma politique de mot de passe d'entreprise a forcé un changement de mot de passe de compte mais je n'ai jamais mis à jour mes informations d'identification stockées (car j'utilise toujours une clé ssh).

La simple mise à jour du mot de passe directement dans l'interface graphique de Wincred a fonctionné: recherchez simplement une git:https://<your-url>entrée.

msanford
la source
0

Cela nous est arrivé après avoir forcé "l'authentification à deux facteurs" avant la connexion depuis Gitlab. Nous avons dû coller le texte de id_rsa.pub dans Gitlab, puis réintroduire le référentiel en code VS à l'aide du terminal.

Onat Korucu
la source