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

多Git平台多账号SSH Key配置与克隆推送权限设置方法

跨平台多Git账号SSH密钥配置方案

SSH config 文件配置

先找到当前用户目录下的.ssh文件夹,里面如果没有config文件就新建一个无后缀的纯文本文件命名为config,写入以下内容,注意把IdentityFile的路径替换成你自己私钥的实际存储路径:

# Github 账号:demetere
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github
  IdentitiesOnly yes

# Gitlab 主账号:demetere
Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_rsa_gitlab
  IdentitiesOnly yes

# Gitlab identomat 账号:demetere._
Host gitlab-identomat
  HostName gitlab.com
  # 如果是企业自建Gitlab实例,把上面的HostName换成对应实例域名即可
  User git
  IdentityFile ~/.ssh/id_rsa_gitlab_identomat
  IdentitiesOnly yes

注意:必须加IdentitiesOnly yes配置,强制SSH仅读取当前Host指定的私钥发起鉴权,避免SSH agent自动加载其他密钥导致身份匹配失败。

配置完成后可以分别执行以下命令验证鉴权是否正常,返回结果包含对应账号的用户名即为配置成功:

  • ssh -T git@github.com
  • ssh -T git@gitlab.com
  • ssh -T git@gitlab-identomat

仓库克隆、推送操作规则

  • 属于Github账号、Gitlab主账号的自有仓库、公开仓库,直接使用平台提供的默认SSH地址克隆即可,不需要修改地址,推送、拉取操作和单账号场景完全一致,会自动匹配对应密钥。比如Github仓库克隆命令直接用git clone git@github.com:owner/repo.git即可。
  • 属于Gitlab identomat账号的仓库,克隆时需要把原SSH地址中@符号后面的域名,替换为config里自定义的Host别名gitlab-identomat。比如原仓库地址是git@gitlab.com:identomat/project.git,替换后的克隆命令为git clone git@gitlab-identomat:identomat/project.git。
  • 如果仓库已经提前克隆到本地,不需要重新拉取,在仓库根目录执行git remote set-url origin 替换后的正确SSH地址即可更新远程地址。

贡献第三方仓库的Host匹配方式

核心判断逻辑是你准备用哪个身份提交贡献,就匹配对应Host规则:

  • 用Github demetere账号给其他用户的Github仓库提交PR、贡献代码时,直接使用仓库提供的默认SSH地址克隆即可,自动匹配Github对应密钥。
  • 用Gitlab主账号demetere给其他用户的Gitlab仓库贡献代码时,同样直接使用默认SSH地址克隆即可。
  • 用Gitlab identomat账号demetere._给对应Gitlab实例上的第三方仓库贡献代码时,克隆时把地址中@后的域名替换为gitlab-identomat别名即可,后续所有提交、推送操作都会自动使用对应账号的身份,不需要额外配置。

内容的提问来源于stack exchange,提问作者demetere._

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:21:30