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

MacOS下Git正确配置SSH config仍多项目密钥匹配错误

故障原因

MacOS 12.4 自带的 OpenSSH 存在两个配置层面的坑会导致串号、重启失效问题:

  • 单Host下配置的UseKeyChain参数拼写错误,正确参数名的keychain首字母k小写、c小写,拼写错误会导致配置完全不生效
  • 缺少全局Host规则时,SSH不会主动从钥匙串拉取对应Host的专属密钥,只会按顺序遍历代理中已加载的密钥做认证,很容易匹配到错误的账号密钥,且系统重启后代理清空就需要手动重新加载密钥。
修复操作
  1. 打开终端编辑SSH配置文件:
    vim ~/.ssh/config
  2. 在配置文件最顶部(所有单独Host配置之前)添加全局规则,同时修正原有配置的拼写错误,完整配置参考如下:
# 全局通用配置
Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentitiesOnly yes

# GitHub progOne 账号
Host progOne
HostName github.com
IdentityFile ~/.ssh/progOne_id_ed25519

# GitHub progTwo 账号
Host progTwo
HostName github.com
IdentityFile ~/.ssh/progTwo_id_ed25519

# GitHub progThree 账号
Host progThree
HostName github.com
IdentityFile ~/.ssh/progThree_id_ed25519

原有单Host配置里重复写的AddKeysToAgent、UseKeychain、IdentitiesOnly规则可以删掉,全局配置已经对所有Host生效,重复写不影响功能但冗余
3. 清空SSH代理当前缓存的所有密钥,避免旧的错误加载记录干扰认证:
ssh-add -D
4. 重新将三组密钥写入SSH代理和系统钥匙串:

ssh-add --apple-use-keychain ~/.ssh/progOne_id_ed25519
ssh-add --apple-use-keychain ~/.ssh/progTwo_id_ed25519
ssh-add --apple-use-keychain ~/.ssh/progThree_id_ed25519
  1. 分别测试三个Host别名的SSH连接:
ssh -T git@progOne
ssh -T git@progTwo
ssh -T git@progThree

测试正常会分别返回三个对应GitHub账号的认证成功提示,不会出现串号,设备重启后也不需要手动重新加载密钥。

补充配置(避免提交串号)

每个本地项目仓库下不要用全局git用户配置,进入对应项目目录后单独配置本仓库的提交身份:

git config user.name "对应GitHub账号的用户名"
git config user.email "对应GitHub账号绑定的提交邮箱"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:57:16