2013-10-07 5 views
2

Je sais que SSH dans GitHub ne cause aucun problème (aucun nom d'utilisateur/mot de passe à taper à chaque fois, c'est-à-dire), mais j'ai besoin d'utiliser HTTPS pour mes repo.GitHub, HTTPS et l'application Mac

Maintenant, je git init ed la prise en pension, je me suis engagé, je l'ai fait une git remote add origin https://github.com/user/repo.gitcomme suggéré par GitHub.

j'étais sur le point de faire une git push -u origin master: d'abord il me promped pour nom d'utilisateur et mot de passe, puis a répondu avec:

remote: Anonymous access to user/repo.git denied. 
fatal: Authentication failed for 'https://github.com/user/repo.git/' 

Je suis 300% sûr que je tapais le bon mot de passe (et j'ai essayé à nouveau un quelques fois de toute façon). J'ai googlé ici et là, et puis j'ai essayé ma dernière chance: installer l'application GitHub pour Mac. J'ai entré mes informations d'identification, entré le code d'autorisation à 2 facteurs qu'elles m'ont envoyé, et j'ai essayé de pousser à nouveau: cette fois, cela a fonctionné.

Pourquoi? Qu'est-ce que l'application GitHub a fait dans les coulisses? A-t-il quelque chose à voir avec l'authentification à 2 facteurs?

De toute façon, je serais en mesure de ne pas télécharger l'application sur chaque machine que je configure, peut-être en automatisant ce processus avec un script.

+0

Avez-vous configuré 'credential-osxkeychain' selon les instructions sur le site github? https://help.github.com/articles/set-up-git#platform-mac – trojanfoe

Répondre

11

Votre mot de passe GitHub ne fonctionnera pas si vous avez activé l'authentification à deux facteurs.

Vous devez générer un jeton d'accès personnel, comme je l'explique dans "Configure Git clients, like GitHub for Windows, to not ask for authentication".

Ce mot de passe long (40 caractères) fonctionnera comme votre mot de passe GitHub sans nécessitant une seconde authentification.

La différence entre un PAT (jeton Personnal Access) et votre compte Mot de passe Github:

  • Il n'a pas besoin de la deuxième étape, mais:
  • il est plus complexe qu'un simple mot de passe (non
  • vous pouvez générer autant que vous le souhaitez (un pour chaque ordinateur différent à partir duquel vous accédez à GitHub, par exemple)
  • vous pouvez le révoquer à tout moment (plus facile que d'avoir à changer votre mot de passe GitHub)

Et vous pouvez crypter vos informations d'identification GitHub dans un fichier .netrc.gpg, comme je l'illustre dans "Is there a way to skip password typing when using https:// github".
Je trouve cela bien supérieur à un mécanisme de mise en mémoire cache (comme credential-osxkeychain), puisque vous n'avez pas à taper votre mot de passe GitHub (long et complexe) à chaque session.
Vous ne saisissez que la phrase secrète de votre clé gpg, pour ce justificatif de connexion/jeton GitHub, ou pour tout autre justificatif que vous avez chiffré dans votre fichier ~/.netrc.gpg.

Questions connexes