L'authentification GitHub échoue sur https, renvoyant une mauvaise adresse e-mail

128

Le lancement d'un push ou de toute autre action avec GitHub à partir de la ligne de commande (via https, pas ssh) qui appelle le nom d'utilisateur et le mot de passe échoue non seulement mais, quand il le fait, il retourne

Username for 'https://github.com': username
Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/username/repository.git/'

Je n'ai pas d' @github.comadresse. Le mot de passe et le nom d'utilisateur sont corrects.

Je sais que je pourrais passer à SSH et utiliser des clés, mais cela ne répond pas à la raison pour laquelle l'authentification échoue sur https.

ele
la source
Documentation git-scm.com/book/en/... git-config - Obtenir et définir le référentiel ou les options globales git-scm.com/docs/git-config
John Smith

Réponses:

171

Le support de GitHub a immédiatement déterminé la racine du problème: l'autorisation à deux facteurs.

Pour utiliser GitHub sur le shell avec https, créez un jeton OAuth . Comme le note la page, j'ai dû supprimer mes informations d'identification de nom d'utilisateur et de mot de passe du trousseau, mais avec osx-keychainen place, le jeton est stocké en tant que mot de passe et les choses fonctionnent exactement comme elles le feraient sur https sans autorisation à deux facteurs en place.

ele
la source
4
+1. Vous pouvez également utiliser un PAT (Personal Access Token) dans un netrc chiffré: stackoverflow.com/a/18607931/6309
VonC
Quelle est la différence entre un PAT et un OAuth?
lindhe
@lindhe Le jeton OAuth est un type de jeton, un PAT est un jeton OAauth dans ce cas.
Kerry Jones le
22

Je n'ai pas d' @github.comadresse

Vous n'êtes pas obligé: le @est le séparateur entre le nom d'utilisateur: mot de passe et le domaine.
Ce n'est pas une adresse e-mail.

Une URL https GitHub complète serait:

https://username:[email protected]/username/reponame.git

Sans le mot de passe (qui serait alors demandé sur la ligne de commande), cela donnerait:

https://[email protected]/username/reponame.git

Mais encore une fois, ce [email protected]n'est pas une adresse e-mail, juste la première partie des informations d'identification.

Assurez-vous que la casse de votre usernameet reponameest correcte: elle est sensible à la casse .

Notez que vous pouvez stocker et crypter vos informations d'identification dans un .netrc.gpg(ou _netrc.gpgsous Windows) si vous ne souhaitez pas mettre lesdites informations en clair dans l'URL.
Voir « Existe-t-il un moyen d'ignorer la saisie du mot de passe lors de l'utilisationhttps://github ».

VonC
la source
Vous pouvez également laisser le mot de passe de côté, en tapant le mot de passe à chaque fois. Dans ce cas, ce serait le cas https://[email protected]/username/reponame.git.
Mark Hildreth
Oh, ça a du sens. Je vous remercie. Je connaissais la sensibilité à la casse et je suis convaincu que le nom d'utilisateur et le mot de passe que je fournis sont corrects. (Ils fonctionnent très bien pour signe dans le site.) A
ele
2
@ele oui, mais votre mot de passe inclut-il des caractères spéciaux (comme ! * ' ( ) ; : @ & = + $ , / ? # [ ])? Ils devraient être "encodés en pourcentage" ( en.wikipedia.org/wiki/Percent-encoding ).
VonC
Le mot de passe est alphanumérique. Je vais voir ce que donne 'git remote -v' quand je serai le prochain sur la machine, mais il semble que je devrais peut-être contacter le support GitHub ensuite.
ELE
@ele essayez d'abord l'approche .netrc (ne cryptez même pas, juste pour tester). Si cela ne fonctionne pas, la prise en charge de GitHub est en effet la prochaine étape.
VonC le
21
  • Allez dans Credential Manager => Windows Manager
  • Supprimer tout ce qui concerne tfs
  • Cliquez maintenant sur Ajouter un identifiant générique et indiquez les valeurs suivantes

    (1) Adresse Internet ou réseau: git: https: //tfs.donamain name (2) username: votre nom d'utilisateur (3) password: votre mot de passe

    cela devrait le réparer

Jemil Oyebisi
la source
sensationnel. J'adore la façon dont il stocke le mot de passe incorrect si vous le saisissez mal. Ensuite, vous devez aller le mettre à jour manuellement ou le supprimer
Kolob Canyon
10

Cela peut se produire sous Windows si vous avez déjà stocké des informations d'identification différentes. Accédez à Credential Manager et supprimez les informations d'identification github stockées

Aléatoire
la source
1
Il est également possible de modifier directement le mot de passe dans Windows Credential Manager avec le nouveau mot de passe.
Spenhouet le
8

La même chose s'est produite avec moi, lorsque j'ai activé l'authentification bidirectionnelle pour github. Ce que j'ai fait pour résoudre:

  • Obtenez votre jeton d'accès personnel. Ceci que vous devez vérifier et générer s'il n'est pas déjà disponible. Lien pour cela: https://github.com/settings/tokens
  • Accédez à votre dossier local et supprimez et re-clonez la branche de github.
  • Maintenant, essayez la commande que vous essayiez plus tôt, c'est-à-dire: git pull origin master
  • Entrez le nom d'utilisateur et dans le mot de passe, collez le jeton généré et n'oubliez pas de sauvegarder ce jeton quelque part, afin que vous puissiez le réutiliser si nécessaire.

Cela résoudra votre problème.

palak
la source
Bonne légende - cela m'arrivait sur mac => j'ai dû régénérer mon PAT
SliverNinja - MSFT
Nous devons générer le jeton si nous avons besoin d'autorisations non présentes dans les jetons générés précédemment. De plus, si nous avons perdu notre jeton précédent, nous pouvons générer ce nouveau jeton et l'utiliser comme mot de passe pour nous authentifier au lieu de notre mot de passe git d'origine.
Mohd Belal
5

Juste au cas où cela aide quelqu'un d'autre aussi, j'étais connecté à l'application mac, la ligne de commande fonctionnant bien, mais comme j'ai ensuite activé 2FA, mes commandes renvoyaient l'erreur. J'ai dû me déconnecter de l'application, puis je pourrais utiliser mon jeton d'accès personnel dans mes commandes selon la réponse d'ele ici .

Espérons que cela aide quelqu'un!

Joël Balmer
la source
-2

Sous Windows, vous pouvez être bloqué en silence par votre antivirus ou votre pare-feu Windows. Désactivez temporairement ces services et poussez / tirez depuis l'origine distante.

Vortex
la source