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, définir ma clé ssh sur github semble ok. 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 nom d'utilisateur github). J'ai strictement suivi les instructions données sur github et les recommandations de nombreuses discussions de pile mais pas moyen. Auriez-vous une idée de ce que j'ai fait de mal?
7 réponses
Https://git@github.com/eurydyce/MDANSE.git n'est pas une url ssh, c'est une URL https (ce 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 ma
~/.gitconfig
fichier 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 le local config: <yourrepo>/.git/config
.
Assurez-vous donc que vous êtes dans le chemin de dépôt lorsque vous effectuez 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 produit
À partir de la documentation D'aide GitHub :
Une fois 2FA activé, vous devrez entrer un jeton d'accès personnel au lieu d'un code 2FA et votre mot de passe GitHub.
...
Par exemple, lorsque vous accédez à un référentiel en utilisant Git sur la ligne de commande en utilisant commandes comme
git clone
,git fetch
,git pull
ougit push
avec les URL HTTPS, vous devez fournir votre nom D'utilisateur GitHub et votre jeton d'accès personnel lorsque vous êtes invité à entrer un nom d'utilisateur et un 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
- générer un jeton D'accès personnel . (Guide détaillé sur création d'un jeton d'accès personnel pour la ligne de commande .)
- copier le Personnel Jeton d'Accès.
- réessayez la commande que vous essayiez et utilisez le jeton D'accès 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 tentera plutôt une authentification de base via 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églé le nom d'utilisateur que Git utilisera pour l'authentification: something
. Puisque vous avez utilisé https://git@github.com
, Git va essayer de se connecter en utilisant le git
nom 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 il semble déjà fonctionner, c'est ce que vous devriez utiliser.
Pour ce faire, vous devez changer votre URL distante, donc Git sait qu'il doit se connecter via SSH. Le format est alors le suivant: git@github.com:username/repository
. Pour mettre à jour votre URL utilisez ceci commande:
git remote set-url origin git@github.com:username/repository
Si comme moi vous venez de mettre à jour votre mot de passe et a couru
git push
pour rencontrer ce problème, alors il y a une solution super facile.
Pour les utilisateurs Mac uniquement. Vous devez supprimer vos entrées D'accès au trousseau OSX pour GitHub. Vous pouvez le faire via terminal en exécutant les commandes suivantes.
Suppression de vos informations d'identification via la ligne de commande
Grâce à la ligne de commande, vous pouvez utiliser l'aide d'informations d'identification directement pour effacer l'entrée du trousseau.
Pour ce faire, tapez ce qui suit commande:
git credential-osxkeychain erase
host=github.com
protocol=https
# [Now Press Return]
Si c'est réussi, rien ne s'imprimera. Pour tester que cela fonctionne, essayez de cloner un référentiel à partir 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 obtenir cette erreur parce que vous avez mis à jour votre mot de passe. Donc, sur le Terminal, assurez-vous d'abord d'effacer vos informations D'identification GitHub du trousseau, puis poussez vos modifications dans votre repo, terminal vous demandera votre nom d'utilisateur et votre mot de passe.
Dans le cas où vous obtenez ce message d'erreur dans cette situation:
- utiliser github pour l'entreprise
- en utilisant Informations d'identification.helper = wincred dans git config
- à l'aide de votre informations d'identification windows, qui vous changé récemment
Alors regardez cette réponse: https://stackoverflow.com/a/39608906/521257
Windows stocke les informations d'identification dans un gestionnaire d'informations d'identification, l'effacer ou de le mettre à jour.
Essayez simplement de le pousser à nouveau dans votre branche. Cela demandera à nouveau votre nom d'utilisateur et votre mot de passe, afin que vous puissiez entrer le mot de passe modifié. De sorte que votre nouveau mot de passe sera stocké à nouveau dans le cache.