You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub仅单个仓库报Permission denied(publickey)问题求助

解决单一GitHub仓库SSH权限拒绝问题

可能的原因

  • 本地SSH配置了针对该仓库的专属密钥映射,对应密钥已失效或路径错误
  • 该仓库曾配置过部署密钥(仓库级权限密钥),当前部署密钥已失效或未关联有效私钥
  • SSH代理缓存了旧密钥,导致访问该仓库时未使用正确的有效密钥

解决步骤

  1. 检查本地SSH配置文件
    打开~/.ssh/config,查看是否存在针对该仓库的Host规则(比如早期手动配置过特定密钥访问)。如果有类似下面的配置,确认IdentityFile指向的密钥文件是否存在,且公钥已在GitHub后台配置:

    Host github.com-[仓库名]
      HostName github.com
      User git
      IdentityFile ~/.ssh/old_key_file
    

    若该配置已无用,直接删除或注释掉即可。

  2. 测试各SSH密钥的有效性
    用本地所有SSH密钥分别测试与GitHub的连接,确认哪个密钥能正常通过认证:

    ssh -i ~/.ssh/密钥文件名1 -T git@github.com
    ssh -i ~/.ssh/密钥文件名2 -T git@github.com
    

    成功的连接会返回Hi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access.。找到有效密钥后,确保后续操作使用该密钥。

  3. 重置SSH代理缓存
    若SSH代理缓存了旧密钥,执行以下命令清空缓存并重新添加有效密钥:

    ssh-add -D
    ssh-add ~/.ssh/你的有效密钥文件名
    

    完成后再尝试克隆或操作目标仓库。

  4. 检查仓库的部署密钥
    登录GitHub进入目标仓库的Settings > Deploy keys,查看是否存在部署密钥:

    • 如果有部署密钥,确认本地是否持有对应私钥,若私钥丢失或失效,直接删除该部署密钥
    • 若需要部署密钥,添加当前有效的公钥作为部署密钥,并勾选Allow write access(如果需要推送权限)
  5. 确认仓库远程地址正确性
    若本地已有该仓库目录,执行git remote -v检查SSH远程地址是否为git@github.com:[你的用户名]/[仓库名].git,确保仓库名拼写无误。

内容的提问来源于stack exchange,提问作者Justin Blayney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:25:16