Git Clone来自GitHub,通过https进行双因素身份验证

时间:2015-07-09 00:04:52

标签: git authentication github

我最近开始在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,例如通过我的请求发送身份验证令牌吗?

6 个答案:

答案 0 :(得分:84)

了解如何解决此问题:

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

  

它如何用于命令行Git?

     

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

答案 1 :(得分:12)

按照@Nitsew's的答案,创建您的personal access token,并使用令牌作为用户名,并输入空白密码。

稍后,您将不需要任何凭据即可访问所有私人存储库。

答案 2 :(得分:5)

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

答案 3 :(得分:1)

通常会想到,经过几次密码尝试并且可能会重置密码之后,您已经设置了双重身份验证。那么,我们如何使用两因素身份验证来git clone一个私有存储库?使用访问令牌很简单。

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

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

哇,行得通!

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

第一:获取个人访问令牌。 https://github.com/settings/tokens
第二:放置帐户和令牌。示例在这里:

$ git push
Username for 'https://github.com':            # Put your GitHub account name
Password for 'https://{USERNAME}@github.com': # Put your Personal access token

有关如何创建个人访问令牌的链接:https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line