Windows 11 上配置多个 GitHub 账号的完整指南
0. 前言
你是否和我一样,有两个 GitHub 账号?一个用于协作团队项目,另一个用于个人创作。想让它们在本地和远端完全隔离,互不干扰?
问题是,Git 默认用全局 user.name
和 user.email
,这会让提交记录看起来混淆身份。更复杂的是,SSH 密钥是权限的关键,每个密钥只能归属于一个账号。电脑默认使用一个 SSH key 连接 github.com,也导致只能无密码访问其中一个账号。
本文将一步步教你在 Windows 11 中:
- 如何为不同账号生成独立 SSH 密钥
- 如何配置 SSH 客户端自动识别不同密钥
- 如何按仓库设置对应的用户信息
- 如何使用自定义 SSH Host 访问不同账号仓库
1. 生成多个 SSH 密钥
打开命令行(Windows Terminal 或 Git Bash),切换到 .ssh
文件夹:
|
|
生成第一个账号的密钥:
|
|
生成第二个账号的密钥(注意 -f
参数自定义文件名,避免覆盖):
|
|
这会生成两对密钥文件:
id_rsa_account1
和id_rsa_account1.pub
id_rsa_account2
和id_rsa_account2.pub
2. 将公钥添加到对应的 GitHub 账号
分别登录两个 GitHub 账号,进入:
Settings → SSH and GPG keys → New SSH key
将对应 .pub
文件内容复制粘贴进去,保存。
添加后,可以用下面命令测试 SSH 连接是否生效(注意路径替换成自己的绝对路径):
|
|
如果看到
|
|
则说明配置无误。
3. 配置 SSH 客户端 config 文件
新建或编辑 %USERPROFILE%\.ssh\config
文件,添加如下内容:
|
|
这里定义了两个“主机别名”:
github-account1
使用账户 1 的私钥github-account2
使用账户 2 的私钥
IdentitiesOnly yes
确保 SSH 只用这里指定的 key。
4. 克隆和操作仓库时使用自定义 Host
更改仓库的远程地址,把默认的 github.com
替换成对应的自定义 Host:
账号 1 的仓库地址示例:
1
git clone git@github-account1:username1/repo.git
账号 2 的仓库地址示例:
1
git clone git@github-account2:username2/repo.git
如果是已经存在的仓库,可以进入项目目录修改远程地址:
|
|
这样操作时,Git 会自动调用对应的 SSH 密钥,实现账号归属分明。
5. 配置本地仓库的用户名和邮箱
建议不要设置全局的 user.name
和 user.email
,改为在每个仓库单独配置:
先取消全局配置:
|
|
进入不同仓库目录,设置对应的身份:
|
|
或者
|
|
你可以使用以下命令查看配置:
|
|
确认是当前仓库的本地设置,不会影响其他仓库。
6. 额外提示和总结
- 不要用同一对 SSH key 关联多个 GitHub 账号,GitHub 会限制并且 SSH 客户端不会自动切换。
~/.ssh/config
文件配置正确,能让你在一台电脑上无缝操作多个账号。- 记住,远程仓库地址里的 Host 名称要和
config
中的对应。 - 始终为每个仓库单独设置用户信息,避免身份混淆。
7. 通过.bat文件实现手动切换全局配置
下面这个简单的批处理脚本可以让用户输入账户名,然后根据不同的账户名设置对应的全局配置。例如:
|
|
这样运行脚本后,你会看到提示输入账户名,然后它会根据你的输入设置对应的全局git配置。你可以根据需要调整账户名和邮箱。
参考资料和链接
总结
通过以上步骤,在 Windows 11 电脑上配置并使用多个 GitHub 账号,既能保证远程访问权限独立,又能保证提交历史中的身份信息清晰准确。多账号管理不再混乱,代码协作更高效。