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

Git无法推送变更至远程仓库,可拉取克隆,重置SSH密钥无效

解决Git推送时"Write access to repository not granted"错误的方案
  • 确认远程仓库URL与权限范围
    执行 git remote -v 查看当前远程仓库地址:

    • 如果是HTTPS地址,建议切换为SSH地址(git remote set-url origin git@github.com:用户名/仓库名.git),或者检查MacOS密钥链中存储的HTTPS凭据是否有效;
    • 如果是SSH地址,注意若你操作的是他人仓库的fork,默认只能推送到自己的fork仓库,要推送到上游仓库需先申请写权限或提交PR。
  • 验证SSH密钥的有效性与账户关联

    1. 执行 ssh -T git@github.com,确认返回信息显示的是你的GitHub账户名(如Hi [你的用户名]! You've successfully authenticated...),若返回其他账户或错误,说明本地SSH密钥未绑定正确账户;
    2. 执行 ssh-add -l 检查本地SSH代理是否加载了正确的密钥,若未加载,执行 ssh-add ~/.ssh/你的密钥文件名(例如id_ed25519);
    3. 登录GitHub账户,进入「Settings > SSH and GPG keys」,确认本地生成的公钥内容与账户中添加的完全一致,无多余空格或换行。
  • 检查仓库协作权限

    • 若为团队共享仓库,联系管理员确认你的账户已被分配写权限(而非只读);
    • 若为个人仓库,确认当前使用的SSH密钥确实关联到了该仓库的拥有者账户,而非其他GitHub账户。
  • 排查本地Git用户配置
    执行以下命令确认全局用户信息与GitHub账户一致:

    git config --global user.name
    git config --global user.email
    

    若不一致,执行git config --global user.name "你的用户名"和git config --global user.email "你的邮箱"修正。

  • 重置SSH主机缓存
    执行 ssh-keygen -R github.com 清除旧的GitHub主机缓存,再重新执行 ssh -T git@github.com 验证连接。

  • 清理MacOS密钥链旧凭据
    打开「密钥链访问」应用,搜索「github」,删除所有相关的旧凭据(包括HTTPS和SSH类型),之后重新尝试推送操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:55:18