在同一台电脑上管理多个 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 时用哪个钥匙。

  1. 打开(或创建)配置文件:

    code ~/.ssh/config
    # 或者用 vim/nano
    vim ~/.ssh/config
    
  2. 写入以下内容:

    # 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 yes
    
    • Host: 你在 Git 命令中使用的别名(这里直接用域名,方便不用改现有仓库配置)。
    • IdentityFile: 对应第 1 步生成的私钥路径。
    • IdentitiesOnly yes: 关键! 强制 SSH 只使用指定的密钥,防止尝试所有密钥导致验证失败。
  3. 保存并关闭文件。

  4. 设置配置文件权限(安全要求):

    chmod 600 ~/.ssh/config
    

第 3 步:将公钥添加到对应平台

你需要把生成的 公钥(.pub) 内容复制到 GitHub 和 Gitee 的后台。

  1. 获取 GitHub 公钥内容:

    cat ~/.ssh/id_ed25519_github.pub
    
    • 复制输出的全部内容(以 ssh-ed25519 开头)。
    • 登录 GitHub -> Settings -> SSH and GPG keys -> New SSH key -> 粘贴保存。
  2. 获取 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.comHost gitee.com,你不需要修改现有项目的远程地址。

  • GitHub 项目 继续用:
    git remote set-url origin git@github.com:用户名/仓库名.git
    
  • Gitee 项目 继续用:
    git remote set-url origin git@gitee.com:用户名/仓库名.git
    

SSH 会自动根据域名(github.comgitee.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

常见问题排查

  1. 权限错误 (Permissions 0644 are too open)
    运行 chmod 600 ~/.ssh/id_ed25519_*chmod 600 ~/.ssh/config
  2. 仍然验证失败
    运行 ssh-add -D 清除缓存,然后 ssh-add ~/.ssh/id_ed25519_github 手动添加密钥试试。
  3. Windows 用户
    路径通常是 C:\Users\你的用户名\.ssh\config,可以用记事本或 VS Code 打开编辑。

按照以上步骤配置后,你就可以在本地无缝切换管理 GitHub 和 Gitee 的项目了。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐