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

Ubuntu下SSH认证克隆GitHub仓库遇公钥权限拒绝问题求助

解决SSH认证成功但克隆GitHub仓库提示Permission denied的问题

嘿,我之前也碰到过一模一样的情况!测试SSH连通性显示成功,但克隆仓库时却报权限错误,多半是这几个细节没处理好,咱们一步步排查:

1. 确认克隆URL是SSH格式

很多时候问题出在不小心用了HTTPS格式的仓库地址——哪怕SSH密钥配置正确,HTTPS地址也不会用到它。你要确保克隆命令里的URL是这种格式:

git clone git@github.com:shouldnotappearcalm/your-repo-name.git

而不是https://github.com/shouldnotappearcalm/your-repo-name.git。可以去GitHub仓库页面,点击「Code」按钮,切换到「SSH」选项再复制地址。

2. 确保SSH密钥已添加到ssh-agent

有时候系统不会自动加载你的私钥,这时候需要手动把密钥加入SSH代理:

  • 先启动ssh-agent:
    eval "$(ssh-agent -s)"
    
  • 然后添加私钥(如果密钥不是默认的id_rsa,要换成你的密钥文件名):
    ssh-add ~/.ssh/id_rsa
    
    如果你的密钥设置了密码,这里会提示输入,输入后再尝试克隆。

3. 检查.ssh目录和密钥文件的权限

GitHub对SSH相关文件的权限要求很严格,权限不对会导致认证失败:

  • 设置.ssh目录权限为700(只有你能读写执行):
    chmod 700 ~/.ssh
    
  • 设置私钥id_rsa权限为600(只有你能读写):
    chmod 600 ~/.ssh/id_rsa
    
  • 设置公钥id_rsa.pub权限为644(所有人可读,你可写):
    chmod 644 ~/.ssh/id_rsa.pub
    

4. 配置SSH config文件(多密钥场景)

如果你有多个SSH密钥(比如同时用多个GitHub账号,或其他服务的密钥),SSH可能会默认使用错误的密钥。这时候需要创建~/.ssh/config文件来指定针对GitHub的密钥:

  • 先创建文件:
    touch ~/.ssh/config
    
  • 编辑文件,写入以下内容(替换成你的密钥路径):
    Host github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_rsa
    

保存后再尝试克隆。

5. 用 verbose 模式排查SSH连接细节

如果以上步骤都没解决,可以用 verbose 模式运行SSH测试,看具体哪里出问题:

ssh -vT git@github.com

查看输出里有没有debug1: Offering public key: ... id_rsa这样的行,确认正确的密钥被提供,以及后续的认证成功日志。

按这个顺序试下来,基本就能解决克隆时的权限问题了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:41:27