L’authentification Git échoue après l’activation de 2FA

Je viens d’activer 2FA (je ne peux pas penser à d’autres modifications que j’ai apscopes) et git m’a demandé mon nom d’utilisateur et mon mot de passe. J’ai fourni les deux, mais ils étaient “faux”. J’ai essayé plusieurs des solutions ici: Git push requirejs un nom d’utilisateur et un mot de passe, mais cela n’a pas fonctionné. En particulier, lors du passage de https à ssh, la clé ssh donne

Permission refusée (publickey). fatal: Impossible de lire à partir du référentiel distant.

$ git push warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple See 'git help config' and search for 'push.default' for further information. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 'current' instead of 'simple' if you sometimes use older versions of Git) Username for 'https://github.com': ********** Password for 'https://mlbileschi@github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/' 

Des conseils?

Vous devez générer un jeton d’access. Vous pouvez en créer un en allant sur votre page de parameters .

entrer la description de l'image ici

Utilisez ce jeton d’access comme mot de passe dans la ligne de commande.

Une solution de bout en bout prend 3 étapes.

  1. Félicitations à Gergo Erdosi. Sa réponse est largement juste, c’est juste que Github modifie cette page de parameters. À la fin de 2016, vous devez générer un jeton d’access à partir de votre page de jetons d’access personnels .

    entrer la description de l'image ici

    Utilisez ce jeton d’access comme mot de passe dans la ligne de commande.

  2. Vous pouvez conserver votre nom d’utilisateur en l’incluant dans l’URL distante de votre projet. Une des manières de le faire est de modifier votre .git/config pour modifier la ligne d’ url au format suivant:

    url = https://YOUR_USERNAME_HERE@github.com/owner/repo.git

  3. Vous pouvez conserver votre mot de passe en l’exécutant une seule fois:

    $ git config credential.helper store

    et vos futurs mots de passe git seront stockés dans les informations d’identification ~ / .git, en texte brut, au format https://user:PlaintextPassword@example.com .

    Le stockage de mots de passe en texte clair serait normalement considéré comme un risque de sécurité. Mais dans ce cas 2FA, les informations d’identification ne sont PAS votre mot de passe réel, c’est une chaîne générée aléatoirement. Il est donc aussi sécurisé que d’utiliser une clé privée ssh une clé privée ssh sans phrase secrète. CAVEAT: gardez à l’esprit que si vous utilisez un autre compte git sans 2FA sur cette machine, ces vrais mots de passe seront également stockés en clair.

PS: Vous pouvez également choisir d’utiliser une connexion basée sur ssh, en utilisant une clé privée ssh protégée par une phrase secrète, ce qui serait plus sûr et moins pratique, mais cela dépasse le cadre de cette réponse.

J’avais un problème similaire. J’ai dû modifier l’url utilisé dans la commande git pour inclure mon nom d’utilisateur.

 git push https://YOUR_USERNAME_HERE@github.com/mlbileschi/scala.git 

Ensuite, quand il demande à PW d’utiliser le jeton d’access que vous avez créé en suivant les instructions de la réponse de Gergo Erdosi.

Sous Linux, vous pouvez authentifier votre identité GitHub en utilisant une clé SSH.

1) Générer une nouvelle clé SSH ( source )

Terminal ouvert

Collez le texte ci-dessous en remplaçant votre adresse e-mail GitHub.

 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 

Cela crée une nouvelle clé ssh, en utilisant le courrier électronique fourni comme étiquette.


2) Relier la clé à votre compte GitHub

Ouvrir le terminal et copier la clé publique générée

 cat ~/.ssh/id_rsa.pub 

Doit sortir quelque chose comme

 ssh-rsa AAAAB3NzaC1y ... mKAKw== your_email@example.com 

Accédez à https://github.com/settings/keys et cliquez sur New SSH Key , atsortingbuez-lui un titre et copiez-collez la clé publique.

entrer la description de l'image ici


3) Changer l’origine de git de https:// à ssh

Ouvrez le terminal, cd à l’emplacement de votre référentiel et tapez

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