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

已添加读写权限SSH Key至GitHub仍遇权限拒绝问题求助

解决Git Push时旧账号权限报错的问题

结合你描述的场景——新账号克隆、提交正常但push时触发旧账号权限拒绝,再加上你修改过~/.config权限的操作,核心问题大概率是Git还在沿用旧账号的认证身份或缓存信息,下面是几个针对性的解决步骤:

  • 先确认Git的用户配置是否正确
    先检查全局和当前仓库的Git用户信息,看看是不是还挂着旧账号的信息:

    git config --global user.name
    git config --global user.email
    git config --local user.name  # 检查当前仓库的本地配置
    git config --local user.email
    

    如果输出是旧账号的内容,用下面的命令更新为新账号信息:

    git config --global user.name "你的新GitHub用户名"
    git config --global user.email "你的新GitHub注册邮箱"
    # 要是仓库有本地配置覆盖全局,别忘了同步更新本地的
    git config --local user.name "你的新GitHub用户名"
    git config --local user.email "你的新GitHub注册邮箱"
    
  • 清理Git的凭证缓存
    Git很可能缓存了旧账号的认证凭据,得把它清掉:

    • macOS用户:打开「钥匙串访问」,搜索「github.com」,删掉对应旧账号的凭证条目;
    • Linux用户:执行git credential-cache exit清除缓存,要是用的是libsecret凭证存储,直接去对应路径删除旧条目;
    • Windows用户:打开「控制面板→用户账户→凭据管理器」,找到Git相关的旧凭证删除即可。
  • 检查SSH配置是否被权限修改影响
    修改~/.config权限后,可能干扰了SSH配置的读取。先看看~/.ssh/config文件(如果存在的话)有没有绑定旧账号的密钥:

    cat ~/.ssh/config
    

    如果里面有类似下面的配置,把IdentityFile改成新账号的私钥路径,或者直接删掉这段配置(让Git默认使用新密钥):

    Host github.com
      IdentityFile ~/.ssh/old_account_id_rsa
    
  • 验证SSH连接的身份
    测试当前SSH连接GitHub时用的是哪个账号:

    ssh -T git@github.com
    

    如果返回的还是旧账号的欢迎语,说明SSH默认用的还是旧密钥。你可以指定新密钥测试:

    ssh -i ~/.ssh/new_account_id_rsa -T git@github.com
    

    要是这个命令能正确返回新账号的提示,就把新密钥设为默认(要么改~/.ssh/config,要么把新密钥重命名为id_rsa,记得备份旧密钥)。

  • 确认仓库的远程URL是否正确
    最后检查下当前仓库的远程地址是不是新账号的仓库:

    git remote -v
    

    如果显示的是旧账号的仓库路径,用下面的命令修改:

    git remote set-url origin git@github.com:你的新用户名/ptscripts.git
    

按这些步骤逐一排查,应该就能解决权限被旧账号拒绝的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:24:08