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

Linux服务器使用SSH克隆GitHub私有仓库时权限被拒求助

解决sudo git克隆GitHub私有仓库时的公钥权限问题

问题原因

使用sudo执行git命令时,会切换到root用户身份,此时SSH会读取root用户的~/.ssh目录(/root/.ssh)下的密钥,而非你普通用户配置的密钥。你之前完成的SSH认证仅在普通用户环境下生效,root用户没有对应的授权密钥,因此出现权限被拒。

解决方案

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

如果目标目录不需要root权限即可写入,直接去掉sudo,用普通用户身份执行克隆:

git clone git@github.com:username/repository.git

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

方案2:为root用户配置SSH密钥

  • 切换到root用户:
    sudo su -
    
  • 复制普通用户的SSH密钥到root的.ssh目录(将your_username替换为你的实际用户名):
    cp ~your_username/.ssh/id_ed25519 /root/.ssh/
    cp ~your_username/.ssh/id_ed25519.pub /root/.ssh/
    
  • 修正密钥文件权限(SSH对文件权限要求严格):
    chmod 700 /root/.ssh
    chmod 600 /root/.ssh/id_ed25519
    chmod 644 /root/.ssh/id_ed25519.pub
    
  • 验证root用户的SSH连接:
    ssh -T git@github.com
    
    确认得到成功认证提示后,即可用sudo git clone克隆仓库。

方案3:让sudo继承普通用户的SSH代理

执行克隆命令时,添加-E参数保留当前用户的环境变量(包括SSH代理信息):

sudo -E git clone git@github.com:username/repository.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:04:56