最佳方案:使用 SSH 密钥并配置 config 文件
这种方法可以为不同的 Git 托管平台分配不同的 SSH 私钥,系统会自动根据仓库的 URL 使用对应的密钥,完全无需手动切换。
第 1 步:为每个平台生成独立的 SSH 密钥
打开 Mac 的终端(Terminal),执行以下命令。
为 GitHub 生成密钥:
ssh-keygen -t ed25519 -C "your_email@github.com" -f ~/.ssh/id_ed25519_github-t ed25519: 使用更安全、更快的 Ed25519 算法。如果你的系统过老不支持,可以使用-t rsa -b 4096。-C: 后面跟注释,通常是你的邮箱,用于标识这个密钥。-f: 指定密钥文件的存放路径和文件名。这里我们为 GitHub 单独命名。
为 Gitee 生成密钥:
ssh-keygen -t ed25519 -C "your_email@gitee.com" -f ~/.ssh/id_ed25519_gitee同样地,为 Gitee 也生成一个,并使用不同的文件名(
id_ed25519_gitee)。过程中会提示你输入密码(passphrase),可以为密钥设置一个额外的安全密码(推荐),也可以直接回车留空。
第 2 步:将公钥添加到 GitHub 和 Gitee
查看并复制公钥内容:
# 复制 GitHub 的公钥 cat ~/.ssh/id_ed25519_github.pub # 选中终端里显示的内容(从 ssh-ed25519 开始一直到你的邮箱),然后按 Command+C 复制 # 复制 Gitee 的公钥 cat ~/.ssh/id_ed25519_gitee.pub # 同样地复制全部内容添加到 GitHub:
- 登录 GitHub -> 点击右上角头像 -> Settings -> SSH and GPG keys -> New SSH key。
- Title 可以写例如
My Mac for GitHub。 - Key 类型选择
Authentication Key。 - 将刚才复制的
id_ed25519_github.pub内容粘贴到 Key 的文本框中。 - 点击 Add SSH key。

- 添加到 Gitee:
- 登录 Gitee -> 点击右上角头像 -> 设置 -> SSH 公钥。
- 标题可以写例如
My Mac for Gitee。 - 将刚才复制的
id_ed25519_gitee.pub内容粘贴到公钥文本框中。 - 点击确定。

第 3 步:创建并配置 SSH config 文件
在 ~/.ssh 目录下创建一个 config 文件(如果不存在的话),来管理不同的密钥。
创建或编辑 config 文件:
nano ~/.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: 这是一个别名,你可以自定义,但为了方便通常直接写平台域名。HostName: 真实的主机名。User: 连接时使用的用户,Git 远程仓库都是git用户。IdentityFile: 指定该平台使用的私钥文件的绝对路径。IdentitiesOnly: 只使用 config 文件中指定的密钥,不尝试其他密钥。

- 保存并退出:
- 在 nano 编辑器中,按
Control + X,然后按Y确认,最后按回车保存。
- 在 nano 编辑器中,按
第 4 步:测试连接
配置完成后,测试一下是否成功。
# 测试 GitHub 连接
ssh -T git@github.com
# 如果成功,你会看到:Hi (your_username)! You've successfully authenticated...
# 测试 Gitee 连接
ssh -T git@gitee.com
# 如果成功,你会看到:Hello (your_username)! You've successfully authenticated...

第 5 步:使用 SSH 地址克隆和操作仓库
现在,当你克隆项目时,务必使用 SSH 地址,而不是 HTTPS 地址。
- GitHub 仓库的 SSH 地址格式:
git@github.com:username/repo_name.git - Gitee 仓库的 SSH 地址格式:
git@gitee.com:username/repo_name.git
例如:
git clone git@github.com:your_github_username/your_repo.git
git clone git@gitee.com:your_gitee_username/your_repo.git
这样,当你 push 或 pull 时,Git 会根据仓库的 URL(是 github.com 还是 gitee.com)自动去 ~/.ssh/config 里找到对应的配置,并使用正确的密钥进行认证,完全不用输入密码(除非你设置了 passphrase)。