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

MacBook双GitHub账号推送报错:user1无user2仓库权限

MacBook双GitHub账号推送权限问题解决方法

你遇到的核心问题是SSH连接时默认使用了个人账号的密钥,和git config里的user.name/email无关(这两个仅控制提交的作者信息)。以下是具体解决步骤:

1. 确认当前SSH关联的账号

执行命令查看当前SSH连接GitHub时用的是哪个账号:

ssh -T git@github.com

如果返回Hi user1! ...,说明确实在使用个人账号的密钥。

2. 为公司账号生成独立SSH密钥

生成专属密钥,避免和个人密钥冲突:

ssh-keygen -t ed25519 -C "user2@company.com"

执行时会提示输入保存路径,比如输入~/.ssh/id_ed25519_user2,不要使用默认的id_ed25519(会覆盖个人密钥)。

生成完成后,把~/.ssh/id_ed25519_user2.pub里的内容复制到公司GitHub账号的SSH密钥设置中。

3. 配置SSH区分双账号

在~/.ssh目录下创建/编辑config文件,添加以下内容:

# 个人账号配置
Host github.com-user1
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519  # 你的个人密钥路径
  IdentitiesOnly yes
  AddKeysToAgent yes

# 公司账号配置
Host github.com-user2
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_user2  # 公司密钥路径
  IdentitiesOnly yes
  AddKeysToAgent yes
  • Host是自定义别名,用来区分不同账号的SSH连接
  • IdentitiesOnly yes强制使用指定的密钥,避免自动匹配其他密钥

4. 修改仓库远程地址

把当前仓库的远程地址替换为公司账号的SSH别名格式:

git remote set-url origin git@github.com-user2:user2/repository-name.git

这里把原地址的github.com换成了我们定义的github.com-user2。

5. 验证连接与推送

先验证公司账号的SSH连接:

ssh -T git@github.com-user2

如果返回Hi user2! You've successfully authenticated, but GitHub does not provide shell access.,说明连接正常,此时再执行推送即可。

额外清理步骤

如果之前有缓存的旧密钥,可清空后重新添加:

ssh-add -D  # 清空所有缓存的密钥
ssh-add ~/.ssh/id_ed25519  # 添加个人密钥(可选,根据需要)
ssh-add ~/.ssh/id_ed25519_user2  # 添加公司密钥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:55:26