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

使用SSH克隆GitHub仓库时遭遇Permission Denied权限拒绝问题

问题解决思路

核心原因:sudo 会切换到root用户环境执行命令,而你之前配置的SSH密钥存放在普通用户的~/.ssh/目录下,root用户的~/.ssh/目录中没有对应的认证密钥,导致克隆时权限验证失败。同时主机密钥警告也是因为root用户的known_hosts文件未记录GitHub的主机密钥,和普通用户的known_hosts不是同一个文件。

解决方法

方法1:避免使用sudo克隆(推荐)

除非你必须将仓库放在需要root权限的系统目录(如/opt),否则直接用普通用户身份克隆:

git clone git@github.com:user/repo.git

如果后续需要调整目录权限,再用sudo chown或sudo chmod修改。

方法2:给root用户配置SSH密钥(如需sudo克隆)

如果必须用root身份克隆,需要为root用户单独配置SSH认证:

  • 切换到root用户:
    sudo su
    
  • 生成root的SSH密钥(或复制普通用户的密钥到root目录):
    • 生成新密钥(一路回车即可):
      ssh-keygen -t ed25519 -C "your_email@example.com"
      
    • 或复制普通用户的密钥(替换your_user为你的用户名):
      cp ~your_user/.ssh/id_ed25519* /root/.ssh/
      
  • 设置密钥文件的正确权限(SSH对权限要求严格):
    chmod 700 /root/.ssh
    chmod 600 /root/.ssh/id_ed25519
    chmod 644 /root/.ssh/id_ed25519.pub
    
  • 将root用户的公钥(/root/.ssh/id_ed25519.pub内容)添加到GitHub的SSH and GPG keys中
  • 验证root的SSH连接:
    ssh -T git@github.com
    
    确认返回You've successfully authenticated, but GitHub does not provide shell access后,再执行克隆命令。

主机密钥警告的补充处理

清理root用户的known_hosts记录,解决主机密钥不一致问题:

sudo ssh-keygen -R github.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:22:11