Mac电脑多平台Git账号配置
最佳方案:使用 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.comHostName github.comUser gitIdentityFile ~/.ssh/id_ed25519_githubIdentitiesOnly yes# Gitee Host gitee.comHostName gitee.comUser gitIdentityFile ~/.ssh/id_ed25519_giteeIdentitiesOnly yes
Host
: 这是一个别名,你可以自定义,但为了方便通常直接写平台域名。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)。