多 Git 账号管理解决方案,SSH 密钥配置实战技巧(附详细图文教程)_git 多账号配置
🚀 为什么需要多 Git 账号管理?
作为一名开发者,我们常常在 Git 平台上托管个人项目。例如,我在 GitHub 上维护着一些开源项目,同时也会在 GitCode 上参与一些开源社区的协作。由于这些平台不同,我需要在本地管理多个 Git 平台的 SSH 密钥。起初,我直接使用默认的平台 SSH 密钥,但因为不同平台的密钥会频繁覆盖,每次推送代码时总是遇到权限错误。为了应对这种问题,我只能手动频繁切换账号。
经过一段时间的摸索,我总结出了一种通过配置多个 SSH 密钥来管理不同账号的方法,解决了每次切换账号的麻烦。下面就把这些实战技巧分享给大家。
本文以 GitHub + GitCode 场景演示:通过不同 SSH 密钥区分两个账号,实现免密推送远程 Git 仓库。
🔑 二、生成多 Git 平台 SSH 密钥
2.1 配置 GitCode 平台 SSH 密钥
2.1.1 生成 SSH 密钥
- 打开命令行终端,输入以下命令在指定目录生成密钥文件:
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/<平台名称>_id_rsa |
- 设置密码后,每次使用 SSH 密钥时都需要输入该密码,可以防止私钥被未经授权的人使用。
- 如果不需要密码,直接按 Enter 键跳过。
- 操作成功后,终端将输出以下内容:
1 | Your identification has been saved in /Users/.ssh/gitcode_id_rsa |
在
~/.ssh/目录可以看到生成的密钥文件:- 私钥:
gitcode_id_rsa(不公开) - 公钥:
gitcode_id_rsa.pub(需添加到 GitCode)
- 私钥:
2.1.2 添加 SSH 公钥到 GitCode
- 执行以下命令或者手动复制 SSH 公钥文件
gitcode_id_rsa.pub的内容:
1 | cat ~/.ssh/gitcode_id_rsa.pub | clip |
注:如果手动复制公共 SSH 密钥,请确保复制了整个密钥,以 `ssh-rsa` 开头,并以电子邮件地址结尾。
登录 GitCode 平台,进入「个人设置」->「安全设置」->「SSH 公钥」:
点击「+ SSH 公钥」:
- 在「公钥名称」一栏中,为公钥添加一个描述性名称
- 将复制的公钥内容粘贴到「公钥」文本框中
- 点击「新建」完成操作
2.2 配置 GitHub 平台 SSH 密钥
2.2.1 生成 SSH 密钥
- 同理,在终端执行以下命令生成 GitHub 密钥:
1 | ssh-keygen -t rsa -b 4096 -C "1500492856@qq.com" -f ~/.ssh/github_id_rsa |
在
~/.ssh/目录可以看到生成的密钥文件:- 私钥:
github_id_rsa(不公开) - 公钥:
github_id_rsa.pub(需添加到 GitHub)
- 私钥:
2.2.2 添加公钥到 GitHub
登录 GitHub,进入 Settings → SSH and GPG Keys:
点击「New SSH key」新建密钥,粘贴 github_id_rsa.pub 内容并保存:
⚙️ 三、关键!编写 config 配置文件(核心区分逻辑)
在
C:\Users\<用户名>\.ssh目录打开config文件(无扩展名),如果文件不存在,可以手动创建一个。按以下格式编写 Git 平台的配置,指定对应的私钥文件:
1 | # ------------------------ GitHub 配置 ------------------------ |
- **Host**:自定义识别符(可理解为 “别名”,用于区分不同账号),通常与平台域名一致。
- **HostName**:目标平台的真实域名(如[gitlab.com](http://gitlab.com/)/[github.com](http://gitlab.com/)/[gitcode.com](http://gitlab.com/)),用于建立 SSH 连接。
- **IdentityFile**:指定当前平台对应的私钥文件路径(与生成的密钥文件名一致),是实现多账号区分的核心配置。
- 将编写完成后的配置添加到
config文件,以下是一个示例配置:
1 | # ------------------------ GitHub 配置 ------------------------ |
🔍 四、验证连接是否成功
4.1 测试 GitHub 连接
- 通过以下命令测试 SSH 连接 GitHub:
1 | ssh -T git@github.com |
- 如果是第一次连接,SSH 客户端会提示你确认 GitHub 服务器的身份:
1 | The authenticity of host 'github.com (20.205.243.166)' can't be established. |
- 如果你信任 GitHub 服务器,可以输入
yes来继续连接:
1 | Are you sure you want to continue connecting (yes/no/[fingerprint])? yes |
- 在终端看到以下内容,则表示 SSH 密钥已被正确认证,成功连接到 GitHub:
1 | Hi ShiJieCloud! You've successfully authenticated, but GitHub does not provide shell access. |
- 接下来我们就可以正常进行克隆、推送、拉取代码等操作了。
4.2 测试 GitCode 连接
- 同理,使用以下命令测试连接:
1 | ssh -T git@gitcode.com |
- 成功连接后会在终端看到以下内容:
1 | remote: Welcome to GitCode, @username |
5.2 为特定仓库设置用户名和邮箱
在指定项目仓库的目录下通过以下命令来设置仓库级别的用户名和邮箱,这只会影响当前仓库,不会更改全局配置:
1 | # 进入项目目录 |
这样设置后,每个仓库将使用独立的用户名和邮箱配置,避免因全局配置导致的账号混淆问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 易锦风的博客!
评论













