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

如何管理多组ssh-keys 避免切换GitHub项目时重复执行ssh-add命令

解决方案

提供两种可直接落地的配置方式,按需选择即可:

方案1:全局SSH配置(设备级生效,适配所有项目)

无需针对单个项目修改配置,一次配置永久生效:

  • 新建/编辑SSH配置文件:vim ~/.ssh/config
  • 写入以下配置内容:
# 个人GitHub账号
Host github.com-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_my_git
  IdentitiesOnly yes

# 公司GitHub账号
Host github.com-company
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_company_git
  IdentitiesOnly yes
  • 给配置文件设置正确权限,避免不生效:chmod 600 ~/.ssh/config
  • 克隆项目时替换对应Host即可自动匹配密钥:
    • 个人项目:将原地址git@github.com:个人用户名/仓库名.git改为git@github.com-personal:个人用户名/仓库名.git
    • 公司项目:将原地址git@github.com:公司组织名/仓库名.git改为git@github.com-company:公司组织名/仓库名.git
  • 已存在的本地项目可直接修改远程地址完成适配,以个人项目为例:git remote set-url origin git@github.com-personal:个人用户名/仓库名.git

方案2:项目级单独配置(仅对指定项目生效,不修改全局规则)

不想修改全局配置时可以单独给单个项目指定密钥:

  • 进入对应项目根目录,编辑项目git配置文件:vim .git/config
  • 追加对应配置即可:
    • 个人项目追加:
[core]
  sshCommand = "ssh -i ~/.ssh/id_rsa_my_git"
  • 公司项目追加:
[core]
  sshCommand = "ssh -i ~/.ssh/id_rsa_company_git"

附加优化:避免每次开机重复加载密钥

搭配上面的配置使用,可完全省去手动执行ssh-add的步骤:

  • Mac系统:执行ssh-add --apple-use-keychain ~/.ssh/id_rsa_my_git ~/.ssh/id_rsa_company_git,将密钥存入系统钥匙串自动加载
  • Linux系统:将ssh-add ~/.ssh/id_rsa_my_git ~/.ssh/id_rsa_company_git写入~/.bashrc或~/.zshrc配置文件,终端启动时自动加载密钥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:39:03