如何使用个人访问令牌 (PAT) 解决 Git Clone 身份验证问题?
2024-10-24•3 分钟阅读
在尝试从 GitHub Enterprise 服务器克隆存储库时,我遇到了一个 SSL 问题。当我尝试使用 HTTPS 克隆存储库时,Git 提示我输入凭据,但我没有使用典型的用户名和密码组合,因为我使用 Microsoft 365 凭据登录。以下是问题的完整细分以及我如何使用个人访问令牌 (PAT) 解决它。
问题:SSL 和身份验证提示
当我第一次尝试使用 HTTPS 克隆存储库时,我遇到了两个主要问题:
- SSL 证书错误:GitHub Enterprise 服务器使用的是自签名 SSL 证书,这导致 Git 由于 SSL 证书验证错误而无法完成操作。
- 身份验证提示:即使在绕过 SSL 问题后,Git 仍然提示我输入用户名和密码。由于我使用 Microsoft 365 进行单点登录 (SSO),因此我没有存储库的传统用户名和密码。
此时,由于自签名 SSL 证书和缺少标准凭据,我无法完成克隆操作。
步骤 1:绕过 SSL 证书问题
为了暂时解决 SSL 证书问题,我运行了以下 Git 命令,该命令禁用 SSL 验证:
git -c http.sslVerify=false clone https://yourcompany.domain/your-team/your-repo.git .
此命令告诉 Git 忽略 SSL 证书检查并继续克隆操作。但是,它没有解决身份验证问题,因为 Git 仍然提示我输入用户名和密码。
步骤 2:使用个人访问令牌 (PAT) 解决身份验证问题
由于我通过 Microsoft 365 凭据(通过 SSO)登录我的 GitHub Enterprise 帐户,因此在被提示时没有提供典型的用户名/密码组合。解决方案是使用个人访问令牌 (PAT),GitHub 在这种情况下提供该令牌以进行安全身份验证。
什么是个人访问令牌 (PAT)?
个人访问令牌 (PAT) 是在使用 HTTPS 进行 Git 操作时进行身份验证的一种更安全的方式。它的作用类似于密码,但更灵活、更安全。您可以生成 PAT 并在 Git 提示输入凭据时将其用作密码。您可以控制其权限(称为范围),使其成为更安全的选择。
如何生成 PAT
- 登录您的 GitHub Enterprise 帐户。
- 转到设置 > 开发者设置 > 个人访问令牌。
- 点击生成新令牌并选择适当的权限(范围)。对于存储库访问,通常需要
repo
范围。 - 复制生成的令牌 (PAT) 并将其保存在安全的地方(此后您将无法再次查看它)。
使用 PAT 克隆存储库
获得个人访问令牌后,我回到了终端。当 Git 提示输入用户名时,我输入了我的电子邮件地址(与 Office 365 登录关联)。当它提示输入密码时,我粘贴了 PAT 而不是密码:
Username for 'https://yourcompany.domain': [email protected]
Password for 'https://[email protected]@yourcompany.domain': <paste-your-PAT-here>
之后,克隆操作完美运行,我获得了对存储库的访问权限。