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

配置双GitHub SSH账号后git push权限拒绝,请求技术支持

解决多GitHub账号SSH Push权限拒绝问题

核心问题定位

你当前push使用的远程仓库URL是默认的github.com:personal/repo.git,未用到~/.ssh/config里定义的github.com-personal别名,导致Git没有加载对应personal账号的SSH密钥,从而触发权限拒绝。

分步解决步骤

1. 检查并修改远程仓库URL

  • 执行命令查看当前远程URL:
    git remote -v
    
    若输出类似以下内容,说明URL未使用别名:
    origin  git@github.com:personal/repo.git (fetch)
    origin  git@github.com:personal/repo.git (push)
    
  • 修改远程URL为别名格式:
    git remote set-url origin git@github.com-personal:personal/repo.git
    
  • 再次执行git remote -v确认,输出应变为:
    origin  git@github.com-personal:personal/repo.git (fetch)
    origin  git@github.com-personal:personal/repo.git (push)
    

2. 验证SSH连接有效性

执行命令测试personal账号的SSH连接:

ssh -T git@github.com-personal

如果返回Hi personal! You've successfully authenticated, but GitHub does not provide shell access.,说明SSH配置正常;若报错,继续以下排查:

排查SSH配置与密钥

  • 检查~/.ssh/config格式:确保配置项用空格缩进(不要用制表符),且IdentityFile路径正确,确认~/.ssh/id_ed25519_personal文件存在。
  • 修正密钥文件权限(权限过高会被SSH拒绝):
    chmod 600 ~/.ssh/config
    chmod 600 ~/.ssh/id_ed25519_personal
    chmod 644 ~/.ssh/id_ed25519_personal.pub
    
  • 确认公钥已添加到GitHub:登录personal账号,进入Settings → SSH and GPG keys,检查是否存在id_ed25519_personal.pub的内容,且状态为有效。

3. 匹配本地Git用户配置(可选)

虽然push权限由SSH密钥决定,但本地仓库用户信息建议与GitHub账号一致,避免commit信息混乱:

  • 查看当前仓库的用户配置:
    git config user.name
    git config user.email
    
  • 若不匹配,执行以下命令修改(仅当前仓库生效,不要加--global):
    git config user.name "personal"
    git config user.email "你的personal账号邮箱"
    

完成以上步骤后,重新执行git push即可正常推送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:54:20