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

已添加SSH密钥仍无法推送项目至Github仓库,如何解决?

解决Git推送Github时Permission denied (publickey)的问题

以下是实用的排查和解决步骤,按顺序尝试:

  • 测试SSH连接有效性
    运行命令ssh -T git@github.com,如果返回Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.说明连接正常;如果还是报错,继续往下排查。

  • 确认SSH代理和密钥加载状态

    1. 启动SSH代理:eval "$(ssh-agent -s)"
    2. 将本地私钥添加到代理:ssh-add ~/.ssh/id_rsa(如果你的私钥是自定义命名,替换成对应的路径,比如~/.ssh/my_github_key)
  • 核对Github上的公钥是否匹配

    1. 查看本地公钥内容:cat ~/.ssh/id_rsa.pub,复制完整的字符串(从ssh-rsa开头到你的邮箱结尾)
    2. 登录Github后进入「Settings」→「SSH and GPG keys」,检查已添加的公钥是否和本地复制的完全一致,注意不要有多余的空格、换行或截断。
  • 检查远程仓库URL配置
    运行git remote -v查看当前远程地址,如果显示的是HTTPS格式(比如https://github.com/xxx/xxx.git),改成SSH格式:
    git remote set-url origin git@github.com:你的用户名/你的仓库名.git

  • 修复本地SSH文件权限
    SSH对文件权限要求严格,权限过宽会被拒绝:

    1. 设置.ssh文件夹权限:chmod 700 ~/.ssh
    2. 设置私钥文件权限:chmod 600 ~/.ssh/id_rsa
  • 多账号/自定义密钥场景处理
    如果同时使用多个Github账号,或者用了非默认命名的密钥,需要在~/.ssh/config文件中添加配置(没有这个文件就新建一个):

    Host github.com-personal
      HostName github.com
      User git
      IdentityFile ~/.ssh/personal_rsa
    

    之后将远程仓库URL改为git@github.com-personal:你的用户名/仓库名.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:48:38