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

Git Bash配置GitHub多SSH身份后Git推送身份错误问题咨询

多GitHub账号SSH自动匹配身份配置修正方案

核心问题

当前配置不生效有三个直接原因:

  • SSH配置文件路径错误,SSH默认读取的配置路径是~/.ssh/config,放在~/ssh/config下的配置不会被自动加载
  • Host字段定义的别名不能包含:字符,且SSH匹配Host规则时,只会识别连接地址中@之后、://之前的主机段,你写的github.com:my_first_github_account格式永远不会被命中
  • 缺少IdentitiesOnly yes配置,SSH默认会优先尝试本地默认密钥、ssh-agent已加载的所有密钥,不会严格使用你指定的IdentityFile,很容易出现身份错配
  • 之前手动执行的ssh测试命令实际连接的是主机github.com,冒号后的内容被识别为远程路径参数,根本没有匹配到自定义Host规则,返回鉴权成功只是刚好本地某个默认密钥有GitHub访问权限,不是配置的专属密钥生效。

修正步骤

  1. 先把配置文件移动到正确路径,重写配置内容:
# 第一个GitHub账号
Host github-user1
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_ed25519_user1
   IdentitiesOnly yes
   
# 第二个GitHub账号
Host github-user2  
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_ed25519_user2
   IdentitiesOnly yes

配置写完后执行chmod 600 ~/.ssh/config修正文件权限,权限过宽会被SSH拒绝加载。

  1. 对应仓库修改远程地址,将原地址中@后的github.com替换为你定义的Host别名。比如第一个账号下的仓库执行:
    git remote set-url origin git@github-user1:my_first_github_account/my-repo.git
    第二个账号下的仓库同理,替换为git@github-user2:账号名/仓库名.git即可。

  2. 验证配置
    执行ssh -T github-user1,返回第一个账号的欢迎提示即为配置正确;执行ssh -T github-user2返回第二个账号的欢迎提示就可以正常使用git push/pull操作,会自动匹配对应密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:57:33