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

React应用部署GitHub Pages时出现git@github.com权限拒绝问题求助

解决GitHub Pages部署时的SSH权限拒绝问题

以下是几个针对性的排查和解决步骤:

1. 强制指定gh-pages的远程仓库地址

gh-pages包可能默认使用了错误的远程地址协议(比如HTTPS而非SSH),或者缓存了旧配置。直接在deploy命令里指定SSH地址:
修改package.json中的scripts字段:

"scripts": {
  "deploy": "gh-pages -d build -r git@github.com:你的用户名/你的仓库名.git"
}

也可以先清除gh-pages的缓存再试:

rm -rf node_modules/.cache/gh-pages/

2. 检查SSH密钥的权限范围

如果你的仓库用了部署密钥而非账号级SSH密钥,默认部署密钥是只读权限,无法推送gh-pages分支。解决方式:

  • 进入仓库设置的「Deploy keys」页面,将目标密钥的「Allow write access」勾选上
  • 或者改用账号级别的SSH密钥(已能推main分支的那套)

3. 确保SSH密钥已加载到当前会话

有时候部署进程的环境没有自动加载你的SSH密钥,手动添加密钥到SSH代理:

ssh-add ~/.ssh/你的密钥文件名

添加完成后再执行npm run deploy

4. 验证gh-pages分支的写入权限

确认你的GitHub账号拥有目标仓库gh-pages分支的写入权限:

  • 进入仓库设置的「Branches」页面,检查分支保护规则是否限制了gh-pages的推送
  • 确认你在仓库的协作者列表中,且权限等级允许推送分支

5. 临时用HTTPS协议测试

如果SSH问题仍无法解决,可以临时切换为HTTPS协议部署,排查是否为SSH环境问题:
修改package.json中的deploy命令:

"scripts": {
  "deploy": "gh-pages -d build -r https://github.com/你的用户名/你的仓库名.git"
}

执行时会提示输入GitHub个人访问令牌(需在GitHub设置中生成,勾选repo权限)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:15:51