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

我最近开始在 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,一切都可以正常工作,但是有没有一种方法可以保持双因素身份验证,同时仍然能够通过 HTTPS 使用 GitHub,例如通过发送一个包含请求的认证令牌?

133919 次浏览

你可在此了解如何解决这个问题:

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

对于命令行 Git 它是如何工作的?

如果您正在使用 SSH 进行 Git 身份验证,那么请放心: 您不需要做任何事情。如果您正在使用 HTTPSGit,请输入个人访问令牌,而不是输入密码。这些可以通过转到 个人访问令牌页来创建。

根据 @ Nitsew’s答案,创建您的 个人通行证个人通行证并使用您的令牌作为您的用户名,并使用空白密码输入。

稍后,您将不需要任何凭证来访问您的所有私人回购(s)。

2021年更新: < em > (它适用于我的 M1 Mac)

创建新的个人访问令牌(勾选适当的框以授予权限)。 使用 GitHub username和密码作为您的 Personal Access Tokens

enter image description here

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

如果你的回购已经启用了2FA,强烈建议使用 github.com 提供的应用程序 下面是链接: < a href = “ https://desk top.github.com/”rel = “ nofollow norefrer”> https://desktop.github.com/

在你下载并安装之后。按照这个方向,应用程序会要求你提供一次性的登录密码。一旦您填写了一次性密码,您现在就可以看到您的回购/项目。

第一步: 获取个人访问令牌
第二步: 输入帐号和令牌,例子如下:

$ 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

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

如何使用访问令牌认证 Git

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

哇,成功了!

  • 创建一个个人访问令牌

    • 例如你的令牌: AAAEEEDDDDDDEEDDDDDD
    • 回购的所有者: facebook
    • 回购名称: 反应
  • 用你的回购信息运行这个命令:

    • git clone https://AAAEEEEDDDDDEEEDDDDDD@github.com/facebook/react.git

Https://dev.to/fpeluso/how-to-clone-a-gitlab-repository-after-enabling-2fa-6oc

git clone https://oauth2:{PERSONAL ACCESS TOKEN}@github.com/[...]/MyPrivateRepo