使用双因素身份验证通过https从GitHub克隆Git

196

我最近开始在GitHub上使用双因素认证,现在无法像通常那样在私有存储库上通过https使用git:

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并且一切正常,但是否有一种方法可以在仍然能够使用GitHub的HTTPS的同时保持双因素身份验证,例如通过在我的请求中发送一个身份验证令牌?

8个回答

204

6
您可以像我在以下 gist 中找到的那样,将标记添加到 .netrc 文件中,以使身份验证也自动化。 - Martin Woolstenhulme
1
但是我正在使用ssh,当从github拉取时,它也提示我输入密码和用户名,为什么会这样?谢谢您的回复! - starkshang
5
在Mac中输入访问令牌后,它仍然对我无效。在输入sudo git clone...之后,系统会在密码字段中要求用户名和密码,我输入了令牌,但对我无效。仍然收到相同的错误信息。 - ojus kulkarni
66
使用您的令牌作为用户名,并提供一个空密码。 - Kotie Smit
手动从 Github 网站复制令牌时,请注意结尾处的 额外空格(即如果不使用 Github 复制按钮)。花了我一些时间才明白为什么这对我不起作用。 - gmargari

49
根据@Nitsew的回答,创建你的个人访问令牌,使用你的令牌作为用户名并留空密码登录。
随后你将不需要任何凭证即可访问你的所有私有库。
更新2021: (已在我的M1 Mac上运行)
创建新的个人访问令牌(勾选适当的框以授予权限)。使用GitHub用户名和密码作为你的个人访问令牌

enter image description here


你会建议在远程服务器上存储访问令牌的位置在哪里? - bdoubleu

12

对于所有遇到问题的人们,对我有效的方法是创建个人访问令牌,然后在打开的提示中将其用作用户名和密码


NICEEEEEEE!!!!! - Uéslei Suptitz

9

通常在经历几次密码尝试和可能的密码重置之后,我们会想到设置双因素身份验证。那么,如何使用双因素身份验证克隆私有存储库呢?答案很简单:使用访问令牌。

如何使用访问令牌进行Git身份验证

  1. 前往 https://github.com/settings/tokens
  2. 点击右上角的“生成新令牌”按钮
  3. 给您的令牌起个描述性的名字
  4. 设置令牌所需的所有权限
  5. 点击底部的“生成令牌”按钮
  6. 将生成的令牌复制到安全的地方
  7. 当您使用git clone时,请使用此令牌而不是密码。

哇,它管用了!


5

0

0
如果您的存储库启用了2FA。强烈建议使用由github.com提供的应用程序。这是链接:https://desktop.github.com/ 下载并安装后,请按照向导操作,该应用程序将要求您提供一次性密码以进行登录。一旦填写了一次性密码,您就可以看到您的存储库/项目了。

只有在使用Windows操作系统时才有帮助。 - Ian Turton

0
2023年更新:我发现安装GitHub CLI非常简单。 只需安装cli并运行gh repo clone <repo_account_name>/<repo_name>,该命令可在存储库页面上找到。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接