我决定记录这一点,因为我知道这至少对我来说会一次又一次地出现,但如果它在此过程中对其他人有所帮助,那就是一场胜利!

这里的目标是要么创建一个新的 PAT,要么替换一个过期的 PAT,PAT u003d Personal Access Token。

这里的关键或每个人都转向 PAT 而不是密码来通过 GitHub 进行身份验证的原因是因为密码身份验证从 2021 年 8 月起被删除。安全策略的一个受欢迎的变化将影响所有集成到 GitHub 中的桌面 git 应用程序服务。已经使用 OAuth 的用户不会受到影响,但是我依靠用户名和密码来连接 GitHub 和 Git,所以我需要进行切换。

出于这篇文章的目的,我使用了一个虚拟 PAT。并不是我不信任你,而是互联网是一个黑暗的地方,并不是每个人都很友好。在这篇文章中,我们将介绍如何从用户名/密码身份验证切换到 PAT。

创建您的个人访问令牌

前往 github.com 并登录您的帐户,然后前往右上角并点击您的小头像。

[827210925 CreatingUpd1](https://res.cloudinary.com/practicaldev/image/fetch/s---NaP6XVi---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla. co.uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd1.png)

从这个菜单点击设置中,请注意我的个人资料中不错的深色高对比度预览功能。无论如何,回到帖子。

[827210925 CreatingUpd2](https://res.cloudinary.com/practicaldev/image/fetch/s--cd3WeiBw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd2.png)

接下来我们需要“开发人员设置”,如下所示。

[827210925 CreatingUpd3](https://res.cloudinary.com/practicaldev/image/fetch/s--wWx_i0is--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd3.png)

然后我们想要“个人访问令牌”

[827210925 CreatingUpd4](https://res.cloudinary.com/practicaldev/image/fetch/s--EI1awVzL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd4.png)

忽略我的令牌和到期日期,这里没什么可看的。继续前行。点击“生成新令牌”通知,但如果您使用 Windows 和 WSL 和 Ubuntu,这就是我们在这里所拥有的以及额外的 Ubuntu 笔记本电脑,您必须为每个人创建一个令牌,您可以使用相同的令牌,但我想把它当作一台单独的机器,也许我错了,但这些代币不会花费你任何东西,所以为什么不呢。但我可能应该在某一天为它们添加一些到期时间......

[827210925 CreatingUpd5](https://res.cloudinary.com/practicaldev/image/fetch/s--M0AEUxNL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd5.png)

在这里,我们可以创建我们的新代币,小心设置过期时间,这将涉及再次进入这里并经历相同的过程。但是还要花一些时间在范围上,我的 GitHub 是一个游乐场和私人项目的组合,只有我可以访问它,但是如果您有多个用户和一个贡献的团队,您可能希望提供特定的访问权限。一旦您定义了令牌的名称/注释、到期时间和范围,然后点击页面底部的绿色生成令牌按钮。

[827210925 CreatingUpd6](https://res.cloudinary.com/practicaldev/image/fetch/s--SNxTe2lN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd6.png)

然后您将看到以下屏幕,我相信我们在可能关闭浏览器或没有记下此处显示的令牌密钥之前都曾经做过一次。我们需要复制一份以备后用。我通常会打开一个记事本并暂时将其放在那里,没有保存记事本,但它作为剪贴板扩展程序存在。

[827210925 CreatingUpd7](https://res.cloudinary.com/practicaldev/image/fetch/s--L7qdYGxe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd7.png)

使用新令牌设置 Git

为了让我的机器存储我们在系统上安装 Git-Credential Manager Core 所需的凭据,我之前已经完成了在我的 Windows 机器上切换到 PAT 的任务,因为它内置在 Git 中。在这个过程中,我们使用的是 WSL / Ubuntu,所以我们从这里选择了我们的发行版的安装说明 -https://github.com/microsoft/Git-Credential-Manager-Core#linux-install-instructions

curl -sSLhttps://packages.microsoft.com/config/ubuntu/21.04/prod.list| sudo tee /etc/apt/sources.list.d/microsoft-prod.list

curl -sSLhttps://packages.microsoft.com/keys/microsoft.asc| sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

sudo apt-get 更新

sudo apt-get install gcmcore

git-credential-manager-core 配置

当我完成上面的操作时,我逐行而不是复制代码块,我不确定是否每个人都对 WSL 有同样的体验,但是当我将代码从 Windows 复制到我的 Ubuntu 终端时,它会添加奇怪的字符大多数情况下~当你在 KubeCon 进行现场演示时,这非常烦人,甚至更烦人......但这就是为什么我已经转移到 Ubuntu 笔记本电脑来完成我的大部分日常任务。

接下来,我们必须配置 GCM,并在我的实例中执行此操作,我使用了 3. Gits built in credential cache,但可以在此处找到其他替代方案 -https://github.com/microsoft/Git-Credential-Manager-Core /blob/main/docs/linuxcredstores.md

如您所见,我已经完成了一些工作,现在我想将其推回到尚未经过身份验证的系统上的 repo 中。我在此之前运行了一个 git add 和 commit,然后是一个 git push,我被问到我想如何进行身份验证。 (我假设 Web 浏览器可用于 OAuth 吗?)如果有人真的在阅读这篇文章并知道,那么请告诉我。我们显然会选择选项 2。

[827210925 CreatingUpd8](https://res.cloudinary.com/practicaldev/image/fetch/s--nRGyxfmC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd8.png)

然后我们添加我们的令牌,我知道你已经看到了上面屏幕截图中的那个,但我没有在这里使用它。这是真的。

[827210925 CreatingUpd9](https://res.cloudinary.com/practicaldev/image/fetch/s--WzOVweVF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd9.png)

然后一旦完成,在这种情况下,我们就可以将我们的更改从我们的 WSL Ubuntu 实例推送到我们的存储库,但显然 git 可以在许多不同的地方进行配置。

[827210925 CreatingUpd10](https://res.cloudinary.com/practicaldev/image/fetch/s--mYRBrLMI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd10.png)

然后这只是最后一次展示,因为 PAT 将存储在 GCM 中,就像我们在本节开头提到的那样。

[827210925 CreatingUpd11](https://res.cloudinary.com/practicaldev/image/fetch/s--70ayv7jj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://vzilla.co .uk/wp-content/uploads/2021/08/82721_0925_CreatingUpd11.png)

现在我希望它可能只是引用这一点,因为很多人已经写过类似的演练,我很满意,但我自己写的事实将在未来帮助我,我相信。但是,如果它有助于其他人,这就是我们将这些内容放在一起并在社区内分享的原因。如果我遗漏了什么,或者您有一些可以帮助我的反馈,请在通常的地方告诉我,通常是 twitter、LinkedIn 或在评论下方。

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐