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

MacOS下GitHub多SSH密钥配置异常,个人密钥匹配企业账户求助

解决MacOS下GitHub多SSH密钥账户身份匹配错误问题

问题现象

配置了两个GitHub账户(个人/企业)及对应独立SSH密钥,SSH配置文件如下:

# * GitHub CKO SSH Key
Host github-enterprise
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  User git
  IdentityFile ~/.ssh/id_ed25519_github

# * GitHub Personal SSH Key
Host github-personal
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  User git
  IdentityFile ~/.ssh/gh_mervinhemaraju_ed25519

此前正常使用近一个月,近期推送个人仓库代码时触发权限拒绝,测试SSH连接发现:

ssh -T git@github-personal
# 返回:Hi mervin-hemaraju-enterprise! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@github-enterprise
# 返回:Hi mervin-hemaraju-cko! You've successfully authenticated, but GitHub does not provide shell access.

个人Host(github-personal)错误匹配到企业账户身份。

解决步骤

1. 清空SSH Agent缓存并重新加载密钥

MacOS的SSH Agent可能缓存了旧的密钥优先级,导致错误匹配:

# 清空所有缓存的SSH密钥
ssh-add -D

# 分别添加两个账户的密钥
ssh-add ~/.ssh/id_ed25519_github
ssh-add ~/.ssh/gh_mervinhemaraju_ed25519

2. 修正SSH配置的优先级

确保全局配置不会覆盖Host专属设置,在~/.ssh/config最顶部添加全局规则,再保留原有Host配置:

# 全局配置
Host *
  AddKeysToAgent yes
  UseKeychain yes

# * GitHub CKO SSH Key
Host github-enterprise
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github

# * GitHub Personal SSH Key
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/gh_mervinhemaraju_ed25519

3. 检查并修正密钥文件权限

MacOS对SSH密钥权限要求严格,必须确保密钥文件和目录权限正确:

# 设置.ssh目录权限为700
chmod 700 ~/.ssh

# 设置两个密钥文件权限为600
chmod 600 ~/.ssh/id_ed25519_github
chmod 600 ~/.ssh/gh_mervinhemaraju_ed25519

4. 验证个人仓库的远程地址配置

确保个人仓库的远程地址使用了github-personal Host,而非直接指向github.com:

# 查看当前远程地址
git remote -v

# 如果不是正确的Host,修改远程地址
git remote set-url origin git@github-personal:mervinhemaraju/your-personal-repo.git

5. 重新测试SSH连接

执行以下命令验证身份匹配是否恢复正常:

ssh -T git@github-personal
# 应返回:Hi mervinhemaraju! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@github-enterprise
# 应返回:Hi mervin-hemaraju-cko! You've successfully authenticated, but GitHub does not provide shell access.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:15:38