如何在同一台电脑上使用SSH管理多个 Git 平台(如 GitHub + Gitee)或多个账号
·
在同一台电脑上管理多个 Git 平台(如 GitHub + Gitee)或多个账号,最佳实践是 为每个平台生成独立的 SSH Key,并通过 SSH Config 文件 进行区分。
这样既安全(一个泄露不影响另一个),又方便(自动匹配,无需手动切换)。
以下是完整的操作步骤(适用于 Mac / Linux / Windows Git Bash):
第 1 步:生成独立的 SSH Key
不要覆盖默认的 id_rsa,为每个平台生成带后缀的密钥。
# 1. 为 GitHub 生成密钥
ssh-keygen -t ed25519 -C "你的 GitHub 邮箱" -f ~/.ssh/id_ed25519_github
# 2. 为 Gitee 生成密钥
ssh-keygen -t ed25519 -C "你的 Gitee 邮箱" -f ~/.ssh/id_ed25519_gitee
提示:生成过程中提示输入密码短语(passphrase)时,直接按回车跳过即可(除非你想要更高安全性)。
第 2 步:配置 SSH Config 文件
这是核心步骤。告诉 SSH 客户端:访问 GitHub 时用哪个钥匙,访问 Gitee 时用哪个钥匙。
-
打开(或创建)配置文件:
code ~/.ssh/config # 或者用 vim/nano vim ~/.ssh/config -
写入以下内容:
# GitHub 配置 Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github IdentitiesOnly yes # Gitee 配置 Host gitee.com HostName gitee.com User git IdentityFile ~/.ssh/id_ed25519_gitee IdentitiesOnly yesHost: 你在 Git 命令中使用的别名(这里直接用域名,方便不用改现有仓库配置)。IdentityFile: 对应第 1 步生成的私钥路径。IdentitiesOnly yes: 关键! 强制 SSH 只使用指定的密钥,防止尝试所有密钥导致验证失败。
-
保存并关闭文件。
-
设置配置文件权限(安全要求):
chmod 600 ~/.ssh/config
第 3 步:将公钥添加到对应平台
你需要把生成的 公钥(.pub) 内容复制到 GitHub 和 Gitee 的后台。
-
获取 GitHub 公钥内容:
cat ~/.ssh/id_ed25519_github.pub- 复制输出的全部内容(以
ssh-ed25519开头)。 - 登录 GitHub -> Settings -> SSH and GPG keys -> New SSH key -> 粘贴保存。
- 复制输出的全部内容(以
-
获取 Gitee 公钥内容:
cat ~/.ssh/id_ed25519_gitee.pub- 复制内容。
- 登录 Gitee -> 设置 -> 安全设置 -> SSH 公钥 -> 粘贴保存。
第 4 步:测试连接
验证配置是否生效。
# 测试 GitHub
ssh -T git@github.com
# 成功会显示:Hi <你的用户名>! You've successfully authenticated...
# 测试 Gitee
ssh -T git@gitee.com
# 成功会显示:Hi <你的用户名>! You've successfully authenticated...
第 5 步:本地项目如何使用?
由于我们在 Config 中直接使用了 Host github.com 和 Host gitee.com,你不需要修改现有项目的远程地址。
- GitHub 项目 继续用:
git remote set-url origin git@github.com:用户名/仓库名.git - Gitee 项目 继续用:
git remote set-url origin git@gitee.com:用户名/仓库名.git
SSH 会自动根据域名(github.com 或 gitee.com)去读取 Config 文件,匹配对应的密钥。
💡 进阶:如果你有多个 GitHub 账号(个人 + 公司)
如果你有两个 GitHub 账号,域名都是 github.com,这时候就需要用 Host 别名 了。
Config 配置示例:
# 个人 GitHub
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github_personal
# 公司 GitHub
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github_work
使用时的区别:
- 个人项目远程地址改为:
git@github-personal:用户名/仓库.git - 公司项目远程地址改为:
git@github-work:用户名/仓库.git
常见问题排查
- 权限错误 (Permissions 0644 are too open):
运行chmod 600 ~/.ssh/id_ed25519_*和chmod 600 ~/.ssh/config。 - 仍然验证失败:
运行ssh-add -D清除缓存,然后ssh-add ~/.ssh/id_ed25519_github手动添加密钥试试。 - Windows 用户:
路径通常是C:\Users\你的用户名\.ssh\config,可以用记事本或 VS Code 打开编辑。
按照以上步骤配置后,你就可以在本地无缝切换管理 GitHub 和 Gitee 的项目了。
更多推荐




所有评论(0)