Git 不断要求身份验证

问题描述 投票:0回答:2

我在 GitHub 上有一个私人存储库来存储我的编程笔记和练习。

我使用两台计算机来访问我的存储库:我的个人笔记本电脑和我的工作计算机。

根据 GitHub 的文档,为了避免每次想要从源推送/拉取/提取时都被要求提供凭据,您应该使用

gh auth login
命令并一劳永逸地执行此操作。

这适用于我的 PC,但似乎不适用于我的工作计算机:事实上,尽管我已按照 GitHub 的新安全控制使用 PAT 登录,但 git 一直要求我在上述场景中进行身份验证.

注意:我读到一个问题可能是 HTTPS。好吧,我不这么认为,因为我按照医生的说明在笔记本电脑上克隆了我的存储库并且它有效,所以...

提前致谢!

git authentication github
2个回答
0
投票

我的猜测是,您在将 Git 链接到 Github 时可能错过了一个步骤。

按照以下说明(取自此处)使用 SSH 将本地 Git 正确链接到 Github,而无需每次都输入凭据。 (假设您已经创建了 Github 帐户)。尝试看看您错过了哪些步骤。

第 1 步:在 CLI 中初始化 Git 凭据

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

如果您选择使用私人 GitHub 电子邮件地址,第二个命令将如下所示:

git config --global user.email "[email protected]"

请记住在此处使用您自己的私人 GitHub 电子邮件。

要验证一切是否正常工作,请输入这些命令并验证输出是否与您的姓名和电子邮件地址匹配。

git config --get user.name
git config --get user.email

macOS 用户:运行这两个命令告诉 git 忽略

.DS_Store
文件,这些文件是在您使用 Finder 查看文件夹时自动创建的。
.DS_Store
文件对用户不可见,并保存文件夹的自定义属性或元数据(如缩略图),如果您没有将 GitHub 配置为忽略它们,讨厌的
.DS_Store
文件将显示在您的提交中。

echo .DS_Store >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

第 2 步:创建 SSH 密钥

GitHub 使用 SSH 密钥允许您上传到存储库,而无需每次都输入您的用户名和密码。

首先,我们需要查看您是否已安装 Ed25519 算法 SSH 密钥。将其输入终端并使用以下信息检查输出:

ls ~/.ssh/id_ed25519.pub

如果控制台中出现一条消息,其中包含文本“没有这样的文件或目录”,则说明您还没有 Ed25519 SSH 密钥,您需要创建一个。如果控制台输出中没有出现此类消息,您可以继续执行步骤 3。

要创建新的 SSH 密钥,请在终端中运行以下命令。 -C 标志后跟您的电子邮件地址可确保 GitHub 知道您是谁。

ssh-keygen -t ed25519 -C <youremail>

请勿包含尖括号。 当它提示您输入保存生成的密钥的位置时,只需按 Enter 键即可。 接下来,它会要求您输入密码;如果您愿意,请输入一个,但这不是必需的。

第 3 步:将您的 SSH 密钥与 GitHub 链接

现在,您需要告诉 GitHub 您的 SSH 密钥是什么,这样您就可以推送代码,而无需每次都输入密码。

首先,您将导航到 GitHub 接收我们的 SSH 密钥的位置。登录 GitHub 并单击右上角的个人资料图片。然后,单击下拉菜单中的“设置”。

接下来,在左侧单击 SSH 和 GPG 密钥。然后,单击右上角显示“新 SSH 密钥”的绿色按钮。将您的密钥命名为具有足够描述性的名称,以便您记住它的来源。在执行后续步骤时,请保持此窗口打开。

现在您需要复制您的 SSH 公钥。为此,我们将使用名为 cat 的命令将文件读取到控制台。 (请注意,.pub 文件扩展名在这种情况下很重要。)

cat ~/.ssh/id_ed25519.pub

突出显示并复制输出,该输出以 ssh-ed25519 开头,以您的电子邮件地址结尾。

现在,返回浏览器窗口中的 GitHub,并将复制的密钥粘贴到密钥字段中。然后,单击添加 SSH 密钥。

第 4 步:测试您的密钥

按照 GitHub 这篇文章中的说明验证您的 SSH 连接(复制并粘贴代码时不要忘记省略 $!)。您应该在终端中看到此响应:

Hi username! You’ve successfully authenticated, but GitHub does not provide shell access
。不要因为 GitHub 不提供 shell 访问而困扰您。


0
投票

确实有效。完美解释了。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.