GitHub上的Git Clone通过https进行两因素身份验证


129

我最近开始在GitHub上使用两因素身份验证,现在我无法以通常的方式在私有存储库上使用git over https:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

如果禁用两因素身份验证,则可以像以前一样使用它:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

我知道我可以使用SSH,并且一切正常,但是有一种方法可以保持两因素身份验证,同时仍然能够通过HTTPS使用GitHub,例如通过在请求中发送身份验证令牌?

Answers:


155

在此处了解如何解决此问题:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

它如何用于命令行Git?

如果您使用SSH进行Git身份验证,请放轻松:您无需执行任何操作。如果您使用的是HTTPS Git,请输入个人访问令牌,而不是输入密码。这些可以通过转到您的个人访问令牌页面来创建。


2
您可以将令牌添加到.netrc文件中,就像我在以下要点中发现的那样,以使身份验证也自动进行。
Martin Woolstenhulme 2015年

1
但是我使用的是ssh,当从github提取时,它也提示我输入密码和用户名,为什么呢?感谢您的回复!
starkshang,2016年

3
在sudo git clone之后在mac中输入访问令牌后,它仍然对我不起作用...。系统正在密码字段中输入用户名和密码,我正在输入令牌,但对我不起作用。收到相同的错误
ojus kulkarni

39
使用令牌作为用户名并输入空白密码。
Kotie Smit

从github站点手动复制令牌时,请注意尾随的额外空间(即,如果不使用github复制按钮)。花了我一段时间了解为什么这对我不起作用。
gmargari


2

对于每个苦苦挣扎的人来说,对我有用的是创建个人访问令牌,然后将其用作用户名和密码(在打开的提示中)。


1

如果您的仓库启用了2FA。强烈建议使用github.com提供的应用程序。以下是链接:https ://desktop.github.com/

下载并安装后。按照提示,该应用程序将要求您提供一次登录密码。填写一次密码后,您现在就可以看到您的存储库/项目。


仅在使用Windows时有用
Ian Turton

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.