💡 适用场景 :你有两个或多个 Gitee 账号(例如
personal@gitee.com
和work@gitee.com
),希望在不同项目中使用对应账号提交代码,避免混淆。
🔧 一、准备工作
- macOS 系统
- 已安装 Git(可通过
git --version
检查) - 两个 Gitee 账号(邮箱不同)
- 终端(Terminal)基础操作能力
📂 二、生成多个 SSH 密钥
每个 Gitee 账号需要一个独立的 SSH 密钥。
1. 创建 SSH 密钥存储目录(如果还没有)
bash
mkdir -p ~/.ssh/gitee
2. 生成第一个账号的 SSH 密钥(例如:个人账号)
bash
ssh-keygen -t rsa -b 4096 -C "personal@email.com" -f ~/.ssh/gitee/id_rsa_gitee_personal
-C
:注释,建议填写邮箱-f
:指定密钥文件路径
⚠️ 注意:过程中会提示输入密码(passphrase),可设置也可直接回车跳过。
3. 生成第二个账号的 SSH 密钥(例如:工作账号)
bash
ssh-keygen -t rsa -b 4096 -C "work@company.com" -f ~/.ssh/gitee/id_rsa_gitee_work
✅ 此时你应该有两个密钥文件:
javascript
~/.ssh/gitee/id_rsa_gitee_personal
~/.ssh/gitee/id_rsa_gitee_personal.pub
~/.ssh/gitee/id_rsa_gitee_work
~/.ssh/gitee/id_rsa_gitee_work.pub
🌐 三、将公钥添加到 Gitee 账户
1. 查看公钥内容
bash
# 查看个人账号公钥
cat ~/.ssh/gitee/id_rsa_gitee_personal.pub
# 查看工作账号公钥
cat ~/.ssh/gitee/id_rsa_gitee_work.pub
复制输出的整段内容(以 ssh-rsa
开头,以邮箱结尾)。
2. 添加到 Gitee
分别登录两个 Gitee 账号,添加对应的 SSH 公钥:
- 打开 Gitee SSH 公钥管理页面
- 点击「添加公钥」
- 标题可填写如
MacBook - Personal
或MacBook - Work
- 粘贴对应的
.pub
内容 - 保存
✅ 验证是否成功:
bashssh -T git@gitee.com
但此时只会默认使用一个密钥,我们需要通过 SSH 配置文件指定不同账号。
⚙️ 四、配置 SSH Config 文件
编辑 SSH 配置文件,为不同账号指定不同的 Host 别名。
1. 打开或创建 SSH 配置文件
bash
nano ~/.ssh/config
温馨提示
:这里如果嫌麻烦的话可以直接command + shift + G
,在弹出的文件前往框中直接输入~/.ssh/config
,然后回车,直接找到ssh
文件中的config
,然后使用文本编辑器打开进行修改,需要注意每次修改完成之后记得保存。

2. 添加如下内容:
config
# Gitee - 个人账号
Host gitee-personal
HostName gitee.com
User git
IdentityFile ~/.ssh/gitee/id_rsa_gitee_personal
PreferredAuthentications publickey
IdentitiesOnly yes
AddKeysToAgent yes
UseKeychain yes
# Gitee - 工作账号
Host gitee-work
HostName gitee.com
User git
IdentityFile ~/.ssh/gitee/id_rsa_gitee_work
PreferredAuthentications publickey
IdentitiesOnly yes
AddKeysToAgent yes
UseKeychain yes
✅ 配置说明:
config
# 定义一个 Host 别名(可以理解为"快捷方式")
# 注意:这里写的是 gitee.com,表示当你使用 git@gitee.com 时,下面的配置就会生效
# 如果你使用了自定义别名(如 gitee-personal),则应把 gitee.com 改成那个别名
Host gitee.com
# 实际要连接的服务器域名
HostName gitee.com
# SSH 登录的用户名,Git over SSH 固定使用 'git' 用户
User git
# 指定用于此连接的私钥文件路径
# 这里指向你生成的 Gitee 专用私钥文件
IdentityFile ~/.ssh/gitee_id_rsa
# 只使用配置中指定的密钥进行认证(安全增强)
# 防止 SSH 自动尝试其他密钥导致认证失败或混乱
IdentitiesOnly yes
# 连接时优先使用公钥认证方式(这是 Git 的标准做法)
PreferredAuthentications publickey
# 将私钥自动添加到 SSH Agent(密钥管理器)中
# 便于在需要时自动使用(尤其是设置了 passphrase 的密钥)
AddKeysToAgent yes
# (macOS 特有)将密钥密码保存到钥匙串(Keychain),避免重复输入 passphrase
# 如果你在生成密钥时设置了密码,开启此项后系统会记住它
UseKeychain yes
🔍 各配置项详细解释
配置项 | 中文说明 |
---|---|
Host gitee.com |
当你执行 ssh git@gitee.com 或 git clone git@gitee.com:... 时,匹配并应用下面的配置 |
HostName gitee.com |
真实的服务器地址(域名) |
User git |
所有 Git over SSH 连接都使用用户名 git ,不是你的 Gitee 用户名 |
IdentityFile ~/.ssh/gitee_id_rsa |
指定使用的私钥文件路径,必须与你生成的密钥一致 |
IdentitiesOnly yes |
重要 :只使用 IdentityFile 指定的密钥,防止 SSH 自动尝试其他密钥导致冲突 |
PreferredAuthentications publickey |
明确使用"公钥认证"方式登录 |
AddKeysToAgent yes |
把这个密钥加入 SSH Agent 管理,方便后续免密操作 |
UseKeychain yes |
仅 macOS 有效:将密钥的 passphrase 保存到系统钥匙串,避免每次输入密码 |
✅ 示例:你执行 git pull
时发生了什么?
- Git 调用 SSH 连接
git@gitee.com
- SSH 读取
~/.ssh/config
,发现Host gitee.com
匹配 - 使用
~/.ssh/gitee_id_rsa
私钥进行认证 - 如果私钥有密码,系统从钥匙串中获取(或弹出输入框)
- 认证成功,拉取代码
⚠️ 注意事项
-
如果你有多个 Gitee 账号 ,不要全部指向
Host gitee.com
,否则会冲突。 -
正确做法是使用不同的 Host 别名 ,例如:
configHost gitee-personal HostName gitee.com User git IdentityFile ~/.ssh/gitee_id_rsa_personal Host gitee-work HostName gitee.com User git IdentityFile ~/.ssh/gitee_id_rsa_work
然后克隆时使用:
bashgit clone git@gitee-personal:username/repo.git
3. 保存并退出
- 按
Ctrl + O
→ 回车(保存) - 按
Ctrl + X
(退出)
4. 设置正确权限(重要!)
bash
chmod 600 ~/.ssh/config
chmod 700 ~/.ssh
chmod 600 ~/.ssh/gitee/*
🧪 五、测试 SSH 连接
bash
# 测试个人账号
ssh -T git@gitee-personal
# 测试工作账号
ssh -T git@gitee-work
✅ 成功输出应为:
vbnet
Hi 你的用户名! You've successfully authenticated, but Gitee.com does not provide shell access.
❌ 如果失败,请检查:
- 公钥是否正确添加
~/.ssh/config
权限是否正确- 密钥路径是否正确
📦 六、克隆项目并绑定账号
1. 使用别名克隆项目
假设你要克隆两个项目:
克隆个人项目
bash
git clone git@gitee-personal:personal-username/my-project.git
克隆工作项目
bash
git clone git@gitee-work:work-username/company-project.git
✅ 注意:
gitee-personal
和gitee-work
是你在~/.ssh/config
中定义的 Host 别名,不是真实域名。
🧑💻 七、设置本地 Git 用户信息(关键!)
Git 提交记录依赖于 user.name
和 user.email
,必须与 Gitee 账号邮箱一致。
1. 进入项目目录,设置本地配置
个人项目
bash
cd my-project
git config user.name "Personal Name"
git config user.email "personal@email.com"
工作项目
bash
cd company-project
git config user.name "Work Name"
git config user.email "work@company.com"
✅ 注意:使用
git config
(无--global
)只对当前项目生效。
2. 验证配置
bash
git config user.name
git config user.email
🔄 八、日常使用流程
操作 | 说明 |
---|---|
git pull / git push |
自动使用对应 SSH 密钥和 Git 邮箱 |
提交代码 | 提交记录会显示为对应账号 |
新项目 | 重复「克隆 + 设置本地 user」流程 |
🧹 九、常见问题与技巧
❓ 如何查看当前使用的是哪个 SSH 密钥?
bash
ssh -vT git@gitee-personal
查看输出中 identity file
路径。
❓ 能否设置全局默认账号?
可以,但不推荐用于多账号。若需设置:
bash
git config --global user.name "Default Name"
git config --global user.email "default@email.com"
然后在特定项目中覆盖即可。
❓ 如何删除某个密钥?
- 删除文件:
rm ~/.ssh/gitee/id_rsa_gitee_work*
- 从 Gitee 删除公钥
- 更新
~/.ssh/config
✅ 总结
步骤 | 关键点 |
---|---|
1. 生成密钥 | 每个账号一个独立密钥 |
2. 添加公钥 | 分别添加到对应 Gitee 账号 |
3. 配置 SSH | 使用 Host 别名区分账号 |
4. 克隆项目 | 使用别名 Host(如 gitee-personal ) |
5. 设置本地 user | 每个项目单独配置 user.name 和 user.email |
🕳️十、 特别注意的一点
到了这一步其实你已经配置好了,但是有一个点需要注意,就是由于你的Host
使用了别名,所以在拉取别人或者公司项目的时候你必须更换成自己自定义的 那个Host
别名才能正常拉下来项目。举个例子如下:
1.自己创建的项目仓库地址如下:
git@gitee-personal:personal-username/my-project.git
这个地址是没有问题的,因为我们发现已经使用了自己自定义的
Host
别名。
2.你拉取别人项目或者公司项目仓库地址如下:
-
git@gitee.com:projectName/ceshi.git
-
你会有些懵为啥报错了?不是已经配置好了吗?
报错的内容
:Auth error: Access denied fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
-
其实这个问题的核心就是由于你拉取的项目是别人的账号创建的项目,所以
Host
默认使用的是git@gitee.com
开头的。这时候你想要拉取成功就必须把Host
更换成你自己自定义的别名才可以拉取成功。如下所示: -
git@gitee-personal:projectName/ceshi.git