GitHub: nom d'utilisateur ou mot de passe invalide


404

J'ai un projet hébergé sur GitHub. J'échoue en essayant de pousser mes modifications sur le maître. Je reçois toujours le message d'erreur suivant

Password for 'https://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

Cependant, définir ma clé ssh sur github semble correct. En effet, quand je fais un ssh -T git@github.comget I

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

Ce qui semble indiquer que tout va bien de ce côté (eurydyce étant mon nom d'utilisateur github). J'ai strictement suivi les instructions données sur github et les recommandations de nombreuses discussions sur la pile mais pas du tout. Auriez-vous une idée de ce que j'ai pu faire de mal?


Je ne suis pas sûr de devoir poster une réponse ou non (fort risque de downvote), car j'ai résolu ce message d'erreur en modifiant le mot de passe dans les paramètres github après avoir essayé de nombreuses tentatives avec le mot de passe "correct" (vérifier par inspecter l'élément).
Fruit

Réponses:


274

https: //git@github.com/eurydyce/MDANSE.git n'est pas une URL ssh, c'est une URL https (qui nécessiterait votre nom de compte GitHub, au lieu de ' git').

Essayez d'utiliser ssh://git@github.com:eurydyce/MDANSE.gitou tout simplementgit@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

L' OP Pellegrini Eric ajoute:

C'est ce que j'ai fait dans mon ~/.gitconfigdossier qui contient actuellement les entrées suivantes[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

Cela ne devrait pas être dans votre configuration globale (celle dans ~/).
Vous pouvez vérifier git config -ldans votre repo: cette URL doit être déclarée dans la locale config: <yourrepo>/.git/config.

Assurez-vous donc que vous êtes dans le chemin du dépôt lorsque vous exécutez la git remote set-urlcommande.


Comme indiqué dans la réponse d' Oliver , une URL HTTPS n'utilisera pas de nom d'utilisateur / mot de passe si l' authentification à deux facteurs (2FA) est activée.

Dans ce cas, le mot de passe doit être un PAT (jeton d'accès personnel) comme indiqué dans « Utilisation d'un jeton sur la ligne de commande ».

Cela ne s'applique qu'aux URL HTTPS, SSH n'est pas affecté par cette limitation.


oups! Vous avez raison, faire ces changements dans ma configuration locale a tout fait fonctionner. Merci beaucoup.
Eurydice

81
Je ne comprends pas du tout cette réponse
Cloud

1
@Clo bien sûr, quelle partie manque de clarté, comment puis-je améliorer cette réponse?
VonC

J'avais un lien de clonage https, qui ne fonctionnait pas. Mais j'ai remplacé par git @ url et il a commencé à fonctionner. Quelle pourrait en être la raison? J'ai également supprimé une entrée github de mon trousseau de mac. Cela pourrait-il être lié? Cependant, je l'utilisais via ssh en configurant des clés. Tout pointeur sera utile à cet égard.
cg

1
@byronaltice S'il s'agit de SSH, cela signifie que vous avez un fichier ~/.ssh/configou %USERPROFILE%\.ssh\config, avec une github.comentrée dedans.
VonC

1013

Après avoir activé l' authentification à deux facteurs (2FA), vous pouvez voir quelque chose comme ceci lors d'une tentative d'utilisation git clone, git fetch, git pullou git push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

Pourquoi cela se produit

Dans la documentation d'aide de GitHub :

Après l'activation de 2FA, vous devrez entrer un jeton d'accès personnel au lieu d'un code 2FA et de votre mot de passe GitHub.

...

Par exemple, lorsque vous accédez à un référentiel à l' aide Git sur la ligne de commande en utilisant des commandes telles que git clone, git fetch, git pullou git pushavec des URL HTTPS, vous devez fournir votre nom d' utilisateur et votre GitHub accès personnel jeton lorsque vous êtes invité pour un nom d' utilisateur et mot de passe. L'invite de ligne de commande ne spécifie pas que vous devez entrer votre jeton d'accès personnel lorsqu'il vous demande votre mot de passe.

Comment le réparer

  1. Générez un jeton d'accès personnel . (Guide détaillé sur la création d'un jeton d'accès personnel pour la ligne de commande .)
  2. Copiez le jeton d'accès personnel.
  3. Relancez la commande que vous tentiez et utilisez le jeton d'accès personnel à la place de votre mot de passe.

Question connexe: https://stackoverflow.com/a/21374369/101662


14
Kudo's et upvotes; la nouvelle génération de jetons est ce dont j'avais besoin. Aussi; le «code de copie» comprenait des caractères supplémentaires (non valides), j'ai donc dû saisir manuellement ma clé aléatoire de 20 [?] chiffres.
th3byrdm4n

7
C'était mon problème, après avoir ajouté l'authentification à 2 facteurs, ce que je soupçonnais, mais la documentation à ce sujet manquait. Merci d'avoir répondu!
Pogrindis

11
@BeauSmith: C'est une modification beaucoup plus substantielle que ce que nous autorisons normalement. Vous avez essentiellement complètement réécrit cette réponse. Veuillez le poster comme votre propre réponse séparée à la place. Voir aussi Que faites-vous si quelqu'un réécrit essentiellement votre réponse entière?
Martijn Pieters

8
Laissons tous s'il vous plaît permettre que la décision soit annulée ou non par @Oliver ici - il y a un argument parfaitement valable dans les deux cas
Flexo

10
Editeur ici… Comme il semble que des gens marquant cette réponse comme correcte (comme moi) arrivent sur cette page pour un problème qui est légèrement différent de ce que le demandeur avait prévu, j'essayais d'ajouter quelques termes "google juice" et de rendre la réponse plus visuelle attrayant de telle sorte que ceux qui recherchent cette solution peuvent la trouver. Essayer d'améliorer les choses pour la communauté. 😀
Beau Smith

86

Étapes de la solution:

  1. Panneau de configuration
  2. Gestionnaire d'informations d'identification
  3. Cliquez sur Informations d'identification de la fenêtre
  4. Dans la section Generic Credential, il y aurait git url, update username and password
  5. Redémarrez Git Bash et essayez de cloner

4
J'avais ce problème avec une version d'entreprise de github (donc en utilisant un nom d'utilisateur / mot de passe local). Cette solution l'a corrigé.
mkennedy

Dans de nouvelles fenêtres, vous pouvez rechercher des "informations d'identification Windows" ou similaires dans votre langue. Un résultat apparaîtra et vous pouvez essayer cette solution.
Charles Tempo

1
Solution parfaite pour le github local, où les entreprises vous obligent à utiliser https
avi.elkharrat

56

Si, comme moi, vous venez de mettre à jour votre mot de passe et que vous avez rencontré git pushce problème, il existe une solution super simple.

Pour les utilisateurs Mac uniquement. Vous devez supprimer vos entrées d'accès au trousseau OSX pour GitHub. Vous pouvez le faire via un terminal en exécutant les commandes suivantes.

Suppression de vos informations d'identification via la ligne de commande

Via la ligne de commande, vous pouvez utiliser l'assistant d'informations d'identification directement pour effacer l'entrée du trousseau.

Pour ce faire, tapez la commande suivante:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

S'il réussit, rien ne s'imprimera. Pour tester son fonctionnement, essayez de cloner un référentiel depuis GitHub ou exécutez à nouveau votre action précédente comme dans mon cas git push. Si vous êtes invité à entrer un mot de passe, l'entrée du trousseau a été supprimée.


2
Pour Windows: git credential-wincred erase host = github.com protocol = https
Juan Uribe

J'ai rencontré ce problème sur un dépôt BitBucket. Cette réponse avec host=bitbucket.orgau lieu de GitHub l'a corrigé pour moi.
gutch

26

Lorsque vous utilisez l' https://URL pour vous connecter à votre référentiel distant, Git n'utilisera pas SSH comme authentification mais tentera à la place une authentification de base sur HTTPS. Habituellement, vous utiliseriez simplement l'URL sans nom d'utilisateur, par exemple https://github.com/username/repository.git, et Git vous inviterait alors à entrer à la fois un nom d'utilisateur (votre nom d'utilisateur GitHub) et votre mot de passe.

Si vous utilisez https://something@github.com/username/repository.git, vous avez prérégler le nom d' utilisateur Git utilisera pour l' authentification: something. Depuis que vous l'avez utilisé https://git@github.com, Git essaiera de se connecter en utilisant le gitnom d'utilisateur pour lequel votre mot de passe ne fonctionne bien sûr pas. Vous devrez donc utiliser votre nom d'utilisateur à la place.

L'alternative est en fait d'utiliser SSH pour l'authentification. De cette façon, vous éviterez d'avoir à taper votre mot de passe tout le temps; et comme cela semble déjà fonctionner, c'est ce que vous devriez utiliser.

Pour ce faire, vous devez cependant changer votre URL distante, donc Git sait qu'il doit se connecter via SSH. Le format est alors la suivante: git@github.com:username/repository. Pour mettre à jour votre URL, utilisez cette commande:

git remote set-url origin git@github.com:username/repository

lorsque vous essayez votre commande, j'obtiens le message suivant warning: remote.origin.url has multiple values. Cela peut être dû au fait que j'ai déjà une balise distante dans mon fichier ~ / .gitconfig qui contient la valeur [remote "origin"] url=git@github.com:eurydyce/MDANSE.git.
Eurydice

18

essayez simplement de le pousser à nouveau dans votre succursale. Cela vous demandera à nouveau votre nom d'utilisateur et votre mot de passe, afin que vous puissiez saisir le mot de passe modifié. Pour que votre nouveau mot de passe soit à nouveau stocké dans le cache.


4
Je ne sais pas pourquoi cela a obtenu un downvote. Dans mon cas, mes informations d'identification ont été mises à jour et le second a git pushdemandé la mise à jour appropriée, comme l'indique cette réponse.
Digital Trauma

Je ne sais pas, ce que vous vouliez dire, il ne demande pas l'exécution de nouvelles informations d'identification git push origin master...
Betlista

13

Au lieu d' git pullessayer égalementgit pull origin master

J'ai changé de mot de passe et la première commande a donné une erreur:

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

Après git pull origin master, il a demandé un mot de passe et a semblé se mettre à jour


7

Pas besoin de compter sur la génération d'un jeton d'accès personnel , puis sur la tentative et l'utilisation du jeton d'accès personnel à la place de votre mot de passe.

La solution rapide consiste à définir votre URL distante pour qu'elle sshne pointe pas https.

Faites ceci git remote set-url origin git@github.com:username/repository


5

J'obtiens ceci lors du clonage de l'application de bitbucket:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

Je l'ai résolu. Ici, vous devez créer un mot de passe pour votre ID utilisateur

  1. Cliquez sur votre profil et vos paramètres Cliquez sur votre profil et vos paramètres

  2. Ensuite, créez le mot de passe de l'application choisissez votre nom, le mot de passe sera généré, collez ce mot de passe dans le terminal Créer un mot de passe d'application


4

La désactivation de l'authentification à 2 facteurs sur github a fonctionné pour moi.

Je vois qu'il y a une réponse supprimée qui dit cela, avec la raison de la suppression comme "ne répond pas à la question". Si cela fonctionne, je pense que cela répond à la question ...


C'est bizarre. C'est la même chose avec moi. Je viens de désactiver l'authentification à deux facteurs et cela fonctionne maintenant pour moi. :)
abhijeetps

Cela a fonctionné pour moi à partir de juin 2020. Merci!
Gcamara14

4

J'ai fait:

$git pull origin master

Ensuite, il a demandé le [Nom d'utilisateur] et le [Mot de passe] et il semble bien fonctionner maintenant.


Cela a fonctionné pour moi. J'ai utilisé fetch à la place de pull mais de toute façon cela n'a pas d'importance. Cool!
atereshkov

2

Dans le cas où vous obtenez ce message d'erreur dans cette situation:

  • utiliser github pour entreprise
  • en utilisant credential.helper = wincred dans git config
  • en utilisant vos informations d'identification Windows que vous avez modifiées récemment

Regardez ensuite cette réponse: https://stackoverflow.com/a/39608906/521257

Windows stocke les informations d'identification dans un gestionnaire d'informations d'identification, effacez-le ou mettez-le à jour.


1

Vous obtenez peut-être cette erreur car vous avez mis à jour votre mot de passe. Donc, sur Terminal, assurez-vous d'abord d'effacer vos informations d'identification GitHub du trousseau, puis de pousser vos modifications dans votre référentiel, le terminal vous demandera votre nom d'utilisateur et votre mot de passe.


1

J'ai eu le même problème. Et je l'ai résolu en changeant le chemin de la branche distante de https://github.com/YourName/RepoNameà git@github.com:YourName/RepoName.gitdans les paramètres du référentiel de l'application cliente.


1

Je rencontre constamment ce problème. Assurez-vous de définir git --config user.name "" et non votre vrai nom, ce que j'ai fait plusieurs fois ..


0

Puisque vous voulez probablement garder 2FA activé pour votre compte, vous pouvez configurer une clé ssh et de cette façon, vous n'aurez pas besoin de taper vos informations d'identification Github chaque fois que vous souhaitez pousser le travail vers Github.

Vous pouvez trouver toutes les étapes de configuration de ssh dans la documentation . Tout d'abord, assurez-vous que vous n'avez actuellement aucune clé ssh (id_rsa.pub, etc.) avec$ ls -al ~/.ssh


-1
  1. Panneau de configuration
  2. Gestionnaire des informations d'identification
  3. Recherchez les informations d'identification Web et les informations d'identification Windows
  4. dans l'un ou l'autre, vous trouverez des informations d'identification Github le corriger avec des informations d'identification correctes
  5. ouvrez une nouvelle instance de git bash, vous devriez pouvoir exécuter vos commandes git.

Cela a fonctionné pour moi, j'ai pu tirer et pousser dans mon référentiel à distance.


-1

Je viens de désactiver l'authentification à deux facteurs et de réessayer. Ça marche pour moi.


-3

Cette solution a fonctionné pour moi:

  1. ouvrir le panneau de configuration
  2. Accédez à Credential Manager
  3. Cliquez sur Informations d'identification de la fenêtre
  4. Dans la section Generic Credential, il y aurait git url, update username and password
  5. Redémarrez Git Bash et essayez de cloner

1
Cette réponse duplique une réponse existante qui n'est pas utile. Lorsque vous avez suffisamment de réputation (15, je crois), vous pouvez voter pour les réponses que vous trouvez utiles. Voter serait la bonne réponse plutôt que d'ajouter cette réponse en double.
AdrianHHH
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.