如何在启用gitlab的第二因素身份验证后使用git命令

an *_*use 19 git authentication gitlab

今天我启用了Gitlab的第二因素身份验证.在那之后,由于我登录了Gitlab网站,我需要用我的手机传递6位数加上我的密码,这很好,这让我觉得安全.

但是,当我使用常规操作时,例如git clone some-repo.git,我收到错误:

Cloning into 'some-repo'...
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'api' scope for Git over HTTP.
remote: You can generate one at https://gitlab.com/profile/personal_access_tokens
fatal: Authentication failed for 'some-repo.git'
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用现有的克隆本地repo,git pull发生同样的错误.在我启用第二因素身份验证之前,所有上述操作都正常.

根据上述错误说明,我转到了上述地址:https://gitlab.com/profile/personal_access_tokens.我创建了以下标记,并保存标记的密钥.

在此输入图像描述

但是,我不知道如何处理这个密钥.谁能告诉我如何使用此键启用像的基本操作git pull,git clone,git push等...

编辑

在启用第二因素身份验证之前,我在本地有很多回购.我希望这些也能奏效.

Joh*_*nck 29

正如使用gitlab令牌进行克隆而不进行身份验证所解释的那样,您可以使用个人访问令牌克隆GitLab 仓库,如下所示:

git clone https://oauth2:ACCESS_TOKEN@gitlab.com/yourself/yourproject.git
Run Code Online (Sandbox Code Playgroud)

至于如何更新现有克隆以使用GitLab个人访问令牌,您应该.git/config在每个本地git目录中编辑您的文件,该目录将具有如下条目:

[remote "origin"]
    url = https://yourself@gitlab.com/yourself/yourproject.git
Run Code Online (Sandbox Code Playgroud)

改变url:

[remote "origin"]
    url = https://oauth2:ACCESS_TOKEN@gitlab.com/yourself/yourproject.git
Run Code Online (Sandbox Code Playgroud)

现在,您可以像启用2FA之前一样继续使用现有的git clone.

  • +1000。在整个网络上搜索了 2 个小时。这对我有用!非常感谢 (6认同)
  • 我必须使用我的令牌名称而不是“oauth2” (5认同)
  • 如果它是私有 gitlab 存储库怎么办? (2认同)

小智 16

当提示输入凭据时,我使用生成的个人访问令牌作为密码。

这允许我只使用标准的 Git Clone 语法而无需输入任何其他内容。

生成时,复制令牌。这是克隆时将存储在凭据管理器中的密码。使用它作为你的密码而不是你的 git 密码。


Sud*_*han 6

访问以下链接并输入您的姓名和到期日期。

然后单击不同的复选框,例如 read_user、read_repository、write_repository 等访问范围,并创建一个新的个人访问令牌并将其存储在安全位置

https://gitlab.com/profile/personal_access_tokens

现在,当您执行git pull、git clone、git push 等操作时,您可以输入您的用户名/电子邮件作为用户名,并输入新创建的个人访问令牌作为密码


小智 5

请参阅下面的链接, 在此处输入链接说明

您只需为您的个人资料创建一个新令牌即可!去做这个,

  1. 单击您的照片,然后进入编辑个人资料部分
  2. 单击访问令牌
  3. 使用您需要的权限创建一个新令牌
  4. 现在根据下面的照片复制创建的令牌, 在此处输入图像描述
  5. git 克隆https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
  6. 输入您的用户名,但使用创建的令牌而不是密码!