目录
- 一、理解 SSH 密钥机制
- 二、具体实现步骤
- 1.删除GIT全局配置
- 2.生成多个 SSH 密钥
- 3.添加公钥到 Git 账户
- 4.配置 SSH config 文件
- 5.测试SSH key是否生效
- 6.下载代码
- 三、Git仓库级别配置
- 四、HTTPS方式的多账号管理

引言:
在日常开发中,我们经常会遇到需要在一台电脑上同时使用多个 Git 账号的场景。比如同时维护个人项目和工作项目,或者参与不同组织的开源项目。本文将详细介绍如何在同一台电脑上配置并切换多个 Git 账号。
一、理解 SSH 密钥机制
Git 通过 SSH 协议与远程仓库通信时,使用密钥进行身份验证。默认情况下,Git 会使用 ~/.ssh/id_rsa
作为私钥。要实现多账号登录,我们需要:
- 为每个 GIt 账号生成独立的密钥对。
- 配置 SSH 客户端识别不同密钥。
- 设置 Git 仓库使用对应的账号。
二、具体实现步骤
1.删除GIT全局配置
查看是否进行过全局配置:
git config --global --list
如果配置过,会出现:
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"
将其删除:
$ git config --global --unset user.name "你的名字"
$ git config --global --unset user.email "你的邮箱"
2.生成多个 SSH 密钥
可以使用 ssh-keygen
命令生成多个 SSH 密钥,命令如下:
# 生成第一个账号的密钥(如Gitee账号)
ssh-keygen -t rsa -b 4096 -C "771679640@qq.com" -f ~/.ssh/di_rsa_gitee
# 生成第二个账号的密钥(如工作账号)
ssh-keygen -t rsa -b 4096 -C "your_work_email@example.com" -f ~/.ssh/id_rsa_work
生成过程中会提示输入密码,一直回车即可:
文件列表如下所示:
3.添加公钥到 Git 账户
将生成的公钥分别添加到对应的 Git 账户中:
# 查看并复制个人账号公钥
cat ~/.ssh/id_rsa_personal.pub
# 查看并复制工作账号公钥
cat ~/.ssh/id_rsa_work.pub
然后分别登录到 GitHub/GitLab/Gitee 等平台,在账号设置中添加对应的 SSH 公钥。
例如:在Gitee中,将对应的 id_rsa_gitee.pub
文件用 记事本 工具打开,将内容(公钥)全部复制配置到到 gitee 中:
4.配置 SSH config 文件
在 ~/.ssh/config
文件中添加以下内容(如文件不存在则创建):
注意1:没有后缀,可以先创建config.txt,编辑完之后把后缀删掉
注意2:最好用 vi等编辑工具打开,避免出编码问题
注意3:尽量手敲,如果直接复制,确保编码格式正确。
# Git SSH 配置文件(通常位于 ~/.ssh/config)
# 每个 "Host" 区块对应一个 Git 远程仓库的 SSH 配置
# Gitee账号配置
# 定义主机别名(通过 `git clone git@git-gitee:xxx` 使用)
Host git-gitee
# 实际连接的远程服务器地址(Gitee 的域名)
HostName gitee.com
# 登录用户名(Git 服务固定为 `git`,但部分平台如 Gitee 可能要求个人用户名)
User acgkaka
# SSH 端口号(默认 22,如果修改过需指定)
Port 22
# 指定使用的私钥文件路径(对应公钥需提前在 Gitee 账户中配置)
IdentityFile ~/.ssh/id_rsa_gitee
# 强制只使用 IdentityFile 中的密钥(避免自动尝试其他密钥)
IdentitiesOnly yes
# 工作账号配置
Host git-work
HostName github.com
Prot 443
User joe
IdentityFile ~/.ssh/id_rsa_work
IdentitiesOnly yes
5.测试SSH key是否生效
验证方式:ssh -T git@自己配置的Host
# 测试Gitee账号连接
ssh -T git@git-gitee
# 测试工作账号连接
ssh -T git@git-work
如果看到 Hi username! You've successfully authenticated...
的消息,说明配置成功。如下所示:
重复操作,完成另一个账号的验证。
6.下载代码
直接 git clone 项目ssh地址
,但是需要将 gitee.com 替换成 Host 的内容。
注意:需要使用修改后的Host进行克隆:
# 克隆个人项目
git clone git@git-gitee:acgkaka/springboot-demo.git
# 克隆工作项目
git clone git@git-work:company/work-repo.git
示例:
- 原有克隆命令:git clone https://gitee.com/acgkaka/springboot-demo.git
- 多账号克隆命令:git clone git@git-gitee:acgkaka/springboot-demo.git
三、Git仓库级别配置
1.全局配置(可选)
设置全局的用户名和邮箱(这将被用作默认值):
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
2.为特定仓库设置独立配置
进入需要特殊配置的仓库目录:
# 切换到工作项目目录
cd ~/work/project
# 设置该仓库使用工作账号
git config user.name "Work Name"
git config user.email "work_email@company.com"
四、HTTPS方式的多账号管理
如果使用 HTTPS 协议而非 SSH,可以通过 git-credential 管理多个凭据:
- 清除现用凭据:
git config --global --unset credential.helper
- 为不同仓库设置不同的凭据存储:
# 在工作仓库中
git config credential.helper 'store --file ~/.git-credentials-work'
# 在个人仓库中
git config credential.helper 'store --file ~/.git-credentials-personal'
整理完毕,完结撒花~ 🌻
参考地址:
1.从永远到永远-Windows10配置多个git账号(以两个gitee账号为例),https://blog.csdn.net/MACHENIC/article/details/116212321