GitHub,HTTPS和Mac应用程序

时间:2013-10-07 10:40:32

标签: macos git github

我知道GitHub中的SSH没有问题(每次都不输入用户名/密码,但是我需要使用HTTPS来代替我的。)/ / p>

现在,我git init编辑了回购,我承诺,我按照GitHub 的建议做了git remote add origin https://github.com/user/repo.git

我准备做git push -u origin master:首先它提示我输入用户名和密码,然后回答:

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

我有300%肯定我输入了正确的密码(而且我还是再尝试过几次)。 我在这里和那里搜索,然后我尝试了最后的机会:为Mac安装GitHub应用程序。 我输入了我的凭据,输入了他们发给我的双因素身份验证码,并试图再次推送:这次它有效。

为什么呢? GitHub应用在幕后做了什么?它与2因子身份验证有关吗?

无论如何,我无法在我设置的每台机器上下载应用程序,也许可以通过一些脚本自动执行此过程。

1 个答案:

答案 0 :(得分:14)

如果您已激活双因素身份验证,则您的GitHub密码将无效。

您需要生成个人访问令牌,我在“Configure Git clients, like GitHub for Windows, to not ask for authentication”中解释。

那个长(40个字符)的密码将作为您的GitHub密码,而不需要进行第二次身份验证。

PAT(Personnal Access令牌)和您的Github密码帐户之间的区别:

  • 不需要第二步,但是:
  • 它比简单的密码(不想记住)更复杂
  • 您可以根据需要生成任意数量(例如,每个不同的计算机都可以从中访问GitHub)
  • 你可以随时撤销它(比不必更改你的GitHub密码更容易)

您可以在.netrc.gpg文件中加密GitHub凭据,正如我在“Is there a way to skip password typing when using https:// github”中说明的那样。
我发现它远远优于内存缓存机制(如credential-osxkeychain),因为您不必在每个会话中键入GitHub(长而复杂的令牌)密码。
您只需键入gpg密钥的密码,GitHub登录/令牌凭据,或您在~/.netrc.gpg文件中加密的任何其他凭据