- 背景
当前,git已成为主流的版本控制工具,越来越多的开发者在使用它进行开发,并且积极参与开源社区的建设。然而,在windows环境下,如何通过ssh key的方式在git客户端上配置多个账号,从而无需输入git用户名和密码,实现更高效的操作,是一个值得探讨的问题。
- SSH Key的生成
在Windows上,打开Git的Bash客户端命令行窗口:

然后执行
ssh-keygen命令,生成RSA公钥和私钥:
ssh-keygen -t rsa -C mail@mail.com
执行结果如下:

生成的文件命名为
id_rsa_gitlab,私钥的密码可以选择不设置,也可以根据个人需求进行设置。生成后,在执行命令的目录下会生成两个文件:
id_rsa_gitlab id_rsa_gitlab.pub
这两个文件的截图如下:

可以使用其他方法生成所需的公钥和私钥对。建议使用与Git账户相同的邮箱,以便于后续区分。
- GitLab配置
在GitLab上,通过账户的Settings进行配置:

在左侧的SSH Key中:

将公钥中的文本内容复制到如下位置:

复制后如下:

标题可以自定义配置。
GitHub的配置与上述类似:

添加SSH Key:

- Windows本地的Git配置
首先,需要将生成的公钥和私钥对复制到当前用户的
.ssh目录中。Windows中的目录如下:
# Windows C:\Users\username\.ssh # Linux /home/username/.ssh
复制后,
.ssh目录中的文件如下:

其中,
id_rsa是GitHub的密钥对,
id_rsa_gitlab是GitLab的密钥对。
config文件是本文的关键,需要手动创建,其内容如下:
# 配置github.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\username\\.ssh\\id_rsa
PreferredAuthentications publickey
User github_username
配置gitlab私服
Host git.xxxx.cn
HostName git.xxxx.cn
IdentityFile C:\Users\username\.ssh\id_rsa_gitlab
PreferredAuthentications publickey
User gitlab_username
上述
username为Windows用户的当前用户名,
github_username为GitHub上的用户名,
gitlab_username为GitLab本地私服的用户名。
配置完成后,对上述配置进行测试,测试命令如下:
ssh -T git@github.com
测试结果如下:

测试成功即表明配置成功,两个Git账户能够访问。可以查看
known_hosts文件,发现配置的Git主机已被自动添加。

随后就可以愉快地拉取代码了。











