我知道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因子身份验证有关吗?
无论如何,我无法在我设置的每台机器上下载应用程序,也许可以通过一些脚本自动执行此过程。
答案 0 :(得分:14)
如果您已激活双因素身份验证,则您的GitHub密码将无效。
您需要生成个人访问令牌,我在“Configure Git clients, like GitHub for Windows, to not ask for authentication”中解释。
那个长(40个字符)的密码将作为您的GitHub密码,而不需要进行第二次身份验证。
PAT(Personnal Access令牌)和您的Github密码帐户之间的区别:
您可以在.netrc.gpg
文件中加密GitHub凭据,正如我在“Is there a way to skip password typing when using https:// github”中说明的那样。
我发现它远远优于内存缓存机制(如credential-osxkeychain),因为您不必在每个会话中键入GitHub(长而复杂的令牌)密码。
您只需键入gpg密钥的密码,GitHub登录/令牌凭据,或您在~/.netrc.gpg
文件中加密的任何其他凭据。