Git 踩坑记录
| 分类在:码农笔记 | 有 1 条评论

Git 踩坑记录

| 分类在:码农笔记 | 有 1 条评论

计算机上配置多个 GitHub 的私钥:

起因:

执行 git push -u origin master 时死活报下面的错:

ERROR: The key you are authenticating with has been marked as read only.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

查证:

粘贴上面的错误翻遍 Bing 和百度,甚至 ChatGPT 也问过了,告诉我下面的解决方案:

For Bing:

1.配置 ssh key 的时候勾选下面的 Allow write access 就可以了,在 settings 的 deploy key 栏目看到这个就说明有读写权限了。

结论:放屁

2.巴拉巴拉告诉我一堆,要我先检查是否有私钥,要是没有要我新建,要是有要我添加。

结论:放屁

For ChatGPT:

这个错误消息通常表示您正在尝试使用标记为只读的 SSH 密钥进行身份验证,这意味着该密钥只能用于拉取(clone)或获取(fetch)远程仓库,而无法进行推送(push)操作。此外,这也可能表明您没有足够的权限来访问远程仓库。

以下是一些解决此问题的建议:

更改 SSH 密钥权限: 如果你在 GitHub,GitLab 或 Bitbucket 等 Git 服务提供商的网站上有账户,你可以登录并前往 SSH 和 GPG 密钥管理页面,然后更改你的 SSH 密钥权限,使其具有写权限。

使用具有写权限的 SSH 密钥: 如果你的 SSH 密钥被标记为只读,那么你需要使用具有写权限的 SSH 密钥。请检查你的 SSH 密钥,并尝试使用具有写权限的 SSH 密钥。

检查远程仓库的访问权限: 如果上述步骤无效,可能是因为你没有足够的权限访问远程仓库。请登录到 Git 服务提供商的网站,并检查你是否具有推送更改到远程仓库的权限。

联系 Git 服务提供商: 如果你仍然遇到问题,可能需要联系 Git 服务提供商的客服求助,他们可以帮助你解决此问题。

希望这些信息能帮到你!如果你需要更多帮助,请随时告诉我。

结论:放屁

解决方案:

其实是因为我配置了多个私钥,而 Git 默认使用配置的第一个私钥来尝试连接,然而第一个私钥的仓库确实是只读的,因此解决方案如下:

  1. ~\.ssh 目录下新建 config 文件
  2. 写入配置文件如下:
# Default GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_default

# Secondary GitHub
Host github-secondary
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_secondary

在上述配置中:

例如,要使用第二个 SSH 密钥从 GitHub 克隆仓库,你可以这样做:

bashCopy code
git clone git@github-secondary:username/repo.git

在上述命令中,"username" 是你的 GitHub 用户名,"repo" 是你的仓库名,"github-secondary" 是你在 SSH 配置文件中设置的 Host 别名。

本文写作于 1年前,文章内容可能已经与事实不符,如有疑问,请咨询作者。

留言:
  1. H1S97X

    大神牛逼!

    Reply