Git 配置多个 SSH key
实际问题
在日常工作中我们会使用不同的代码平台管理代码。如:
- 公司自己搭建的GitLab
- GitHub
- 码云Gitee
生成SSH key
因此我们要配置不同的SSH key对应不同的环境,具体的操作如下:
1、生成公司GitLab SSH key
SSH keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "email"
2、生成GitHub SSH key
SSH keygen -t rsa -f ~/.ssh/id_rsa.github -C "email"
3、生成码云Gitee SSH key
SSH keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "email"
以GitHub为例: id_rsa.github
就是我们指定的文件名,这时~/.ssh
目录下会多出id_rsa.github
和id_rsa.github.pub
两个文件,id_rsa.github.pub
里保存的就是我们要使用的SSH key。
$ ls -lh ~/.ssh/ -rw-r--r-- 1 yu Administ 1.6k Nov 27 20:55 id_rsa.github -rw-r--r-- 1 yu Administ 398 Nov 27 20:55 id_rsa.github.pub
创建并配置config文件
// 创建config文件 touch ~/.ssh/config // 添加如下配置 # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.github # gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.gitee # 公司 gitlab Host 10.10.10.28 HostName 10.10.10.28 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.gitlab
添加SSH key到各代码平台
以GitHub为例,在GitHub的账户设置中添加SSH Key:

测试SSH key是否配置成功
如测试GitHub配置,输出如下信息,则表示通过
$ ssh -T git@github.com Hi shark-yu! You've successfully authenticated, but GitHub does not provide shell access.
如需添加其它,按上述步骤生成key,并修改config配置文件即可。