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

如何解决Git推送时"所用认证密钥已被标记为只读"错误?

Git Push 报错 "The key you are authenticating with has been marked as read only" 的原因及解决方法

操作场景与报错信息

你执行以下操作后触发错误:

$ ... create new file ...
$ git add *
$ git commit -m "first-file"
$ git push origin main

错误提示:

The key you are authenticating with has been marked as read only.
fatal: could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists

错误原因

  • 本地SSH密钥文件权限配置错误,被识别为只读权限
  • 当前使用的SSH密钥关联的账号,对目标远程仓库仅拥有只读访问权限,无推送(写入)权限
  • 远程仓库的成员权限设置有误,你的账号未被授予写入权限

解决方法

1. 修复SSH密钥文件权限

本地SSH密钥权限必须严格限制,执行以下命令修正:

chmod 600 ~/.ssh/id_rsa  # 替换为你的私钥文件名,如id_ed25519
chmod 644 ~/.ssh/id_rsa.pub  # 对应公钥文件权限

2. 确认远程仓库权限配置

  • 登录Git托管平台,进入目标仓库的权限设置页面
  • 检查你的账号是否在仓库成员列表中,且拥有**Write(写入)**或更高权限
  • 若为fork的仓库,确认推送地址是否指向你有权限的分支

3. 更换具备写入权限的SSH密钥

  • 生成新的SSH密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
  • 将新生成的公钥(~/.ssh/id_ed25519.pub)添加到Git托管平台的账号SSH设置中
  • 重新克隆仓库或更新本地远程地址后再执行推送

4. 检查并修正远程仓库地址

查看当前远程地址:

git remote -v

若地址为只读类型或错误地址,更新为正确的可写入地址:

git remote set-url origin git@your-repo-url.git  # 替换为你的仓库SSH地址

内容的提问来源于stack exchange,提问作者ad-dido29

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:42:04