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

远程Linux服务器通过SSH推送代码至GitHub遇公钥权限拒绝问题求助

解决DigitalOcean服务器通过SSH推送代码到GitHub的公钥权限错误

你之前的操作核心误区是用本地GitBash生成的密钥来让服务器连接GitHub——服务器推送代码到GitHub时,是服务器作为客户端和GitHub建立SSH连接,因此需要在服务器本地生成SSH密钥对,而非本地电脑的密钥。

正确操作步骤

  • 在远程Linux服务器上生成SSH密钥对:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    

    按提示一路回车即可,无需设置密码(或按需设置)。

  • 复制服务器上的公钥内容:

    cat ~/.ssh/id_ed25519.pub
    

    把输出的完整公钥字符串复制,替换或新增到你的GitHub账户设置中的SSH公钥列表里。

  • 验证服务器与GitHub的SSH连接:

    ssh -T git@github.com
    

    若看到类似Hi username! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明连接正常。

  • 检查仓库的远程地址格式:

    git remote -v
    

    确保origin地址是SSH格式(git@github.com:your-username/your-repo.git),而非HTTPS格式。如果是HTTPS,用以下命令修改:

    git remote set-url origin git@github.com:your-username/your-repo.git
    
  • 修复服务器SSH文件权限(关键):
    服务器上的SSH相关文件权限必须严格符合要求,否则会被SSH拒绝使用:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_ed25519
    chmod 644 ~/.ssh/id_ed25519.pub
    

排查额外问题

如果以上操作后仍报错,执行以下命令查看SSH调试日志,定位具体错误:

ssh -vT git@github.com

日志会显示SSH连接过程中尝试使用的密钥、权限检查细节等,根据提示调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:06:07