“权限不足”源于身份凭证失效、远程仓库配置错误、平台级访问控制未开通三类原因;需据首行报错快速定位:permission denied (publickey)→ssh密钥问题,repository not found→url错误或无协作者权限,403→https凭据过期,you are not allowed to push→分支保护或只读权限。

“权限不足”不是单一问题,而是三类底层原因的外在表现:身份凭证失效、远程仓库配置错误、平台级访问控制未开通。直接查错误信息比猜更省时间。
看错误信息快速定位类型
执行 git push origin main 后,先盯住第一行报错:
-
Permission denied (publickey)→ SSH 密钥没配好或没被识别 -
remote: Repository not found→ URL 错了,或你根本没被加进协作者列表 -
remote: You are not allowed to push code to this project→ 仓库开了分支保护,或你是只读成员 -
fatal: unable to access 'https://...': The requested URL returned error: 403→ HTTPS 凭据过期或被拒绝
SSH 连接失败时该检查什么
不是重装 Git,而是验证密钥链是否通:
监控一个或多个 GitCode 仓库的 PR,通过 OpenClaw Gateway 自动执行 AI 审查,发布 PR 评论,并发送钉钉和企业微信通知。
- 运行
ssh -T git@gitcode.net(把域名换成你用的平台,如git@github.com);失败就别继续 push - 确认公钥已存在:
ls -l ~/.ssh/id_rsa.pub;若不存在,用ssh-keygen -t rsa -b 4096 -C "your_email@example.com"生成 - 复制公钥内容:
cat ~/.ssh/id_rsa.pub,粘贴到 GitCode/Gitee/GitHub 的 SSH Keys 页面 - 检查本地私钥权限:
chmod 600 ~/.ssh/id_rsa;chmod 700 ~/.ssh,否则 OpenSSH 会直接跳过
HTTPS 协议下 403 或凭据失效
Windows 用户最容易卡在这里,因为系统凭据管理器悄悄记住了旧账号:
- 先清旧凭据:
git credential-manager reject https://gitcode.net(替换成你的实际域名) - 再试一次 push,系统会弹窗要你输新密码——注意:GitHub 已禁用密码登录,必须用 Personal Access Token 替代
- Gitee/GitCode 仍支持密码,但建议统一用 Token;生成后当密码填入即可
- 不想每次输?启用缓存:
git config --global credential.helper cache(Linux/macOS)或保留 Windows 默认的manager
确认你真有写权限
很多开发者忽略这一步,直到反复折腾 SSH 和 HTTPS 都失败:
- 打开浏览器,直接访问
https://gitcode.net/用户名/仓库名;如果 404 或提示 “无权访问”,说明你不在协作者列表里 - 进入仓库 Settings → Collaborators(GitCode)或 Manage Access(Gitee),确认你的账号出现在 “Write” 权限组
- 如果是组织仓库,检查你是否被加入对应团队,且该团队被授予了该仓库的
push权限 - 分支保护开启时,
main分支禁止直接 push 是正常行为;此时必须推到新分支再提 PR
真正容易被绕开的是「权限继承路径」:个人账号有权限 ≠ 组织子账号自动继承;Token 作用域没勾选 repo 就等于白给;SSH 测试成功 ≠ 该密钥被绑定了当前仓库。每层都要单独验,不能默认上一层通过就代表下一层 OK。










