GitHub: nom d’utilisateur ou mot de passe invalide

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, régler ma clé ssh sur github semble correct. En effet, quand je fais un ssh -T git@github.com je reçois

 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 identifiant github). J’ai ssortingctement suivi les instructions données sur github et les recommandations de nombreuses discussions de stacks mais pas du tout. Auriez-vous une idée de ce que j’ai peut-être mal fait?

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

Essayez d’utiliser ssh://git@github.com:eurydyce/MDANSE.git ou simplement git@github.com:eurydyce/MDANSE.git

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

Le OP Pellegrini Eric ajoute:

C’est ce que j’ai fait dans mon fichier ~/.gitconfig 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 de ~/ ).
Vous pouvez vérifier git config -l dans votre repo: cette URL doit être déclarée dans la configuration locale : /.git/config .

Donc, assurez-vous que vous êtes dans le chemin repo lorsque vous faites la commande git remote set-url .

Après avoir activé l’authentification à deux facteurs (2FA), vous pouvez voir quelque chose comme ceci lorsque vous essayez d’utiliser git clone , git fetch , git pull ou 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 passe

À partir de la documentation de GitHub Help :

Une fois que 2FA est activé, vous devrez entrer un jeton d’access personnel au lieu d’un code 2FA et de votre mot de passe GitHub.

Par exemple, lorsque vous accédez à un référentiel en utilisant Git sur la ligne de commande avec des commandes comme git clone , git fetch , git pull ou git push avec des URL HTTPS, vous devez fournir votre nom d’utilisateur GitHub et votre jeton d’access . L’invite de ligne de commande ne spécifie pas que vous devez entrer votre jeton d’access personnel lorsqu’il vous demande votre mot de passe.

Comment le réparer

  1. Générez un jeton d’access personnel . (Guide détaillé sur la création d’un jeton d’access personnel pour la ligne de commande .)
  2. Copiez le jeton d’access personnel.
  3. Réessayez la commande que vous avez essayée et utilisez le jeton d’access personnel à la place de votre mot de passe.

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

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

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

L’alternative consiste en fait à utiliser SSH pour l’authentification. De cette façon, vous éviterez de 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 toutefois modifier votre URL distante afin que Git sache qu’elle doit se connecter via SSH. Le format est alors celui-ci: git@github.com:username/repository . Pour mettre à jour votre URL, utilisez cette commande:

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

Si, comme moi, vous venez de mettre à jour votre mot de passe et que vous avez lancé git push pour résoudre ce problème, il existe une solution extrêmement simple.

Pour les utilisateurs Mac uniquement. Vous devez supprimer vos entrées d’access OSX Keychain pour GitHub. Vous pouvez le faire via un terminal en exécutant

Supprimer vos identifiants via la ligne de commande

Grâce à la ligne de commande, vous pouvez utiliser l’assistant 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] 

Si cela réussit, rien ne sera imprimé. Pour tester que cela fonctionne, essayez de cloner un repository de 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.

Vous pourriez avoir cette erreur parce que vous avez mis à jour votre mot de passe. Donc, au Terminal, assurez-vous d’effacer vos informations d’identification GitHub du trousseau, puis envoyez vos modifications à votre repository, le terminal vous demandera votre nom d’utilisateur et votre mot de passe.

juste essayer de le pousser à votre twig à nouveau. Cela vous demandera à nouveau votre nom d’utilisateur et votre mot de passe afin que vous puissiez alimenter le mot de passe modifié. Pour que votre nouveau mot de passe soit à nouveau stocké dans le cache.

Si vous recevez ce message d’erreur dans cette situation:

  • utiliser github pour entreprise
  • using credential.helper = crédité dans git config
  • en utilisant vos informations d’identification Windows que vous avez changé récemment

Ensuite, regardez 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.

J’ai résolu ce problème en désactivant 2FA.