1.生成不同名称的ssh密钥
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "youremail@example.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "youremail@example.com"
2.新建ssh配置文件
touch ~/.ssh/config
config的内容如下:
#github配置
Host github
Hostname github.com
user user@github.com
IdentityFile ~/.ssh/id_rsa.github
#gitlab配置
Host gitlab
Hostname gitlab.com
user user@gitlab.com
IdentityFile ~/.ssh/id_rsa.gitlab
3.添加私钥
$ ssh-add ~/.ssh/id_rsa.gitlab
$ ssh-add ~/.ssh/id_rsa.github
4.设置远程库的地址
git remote add origin git@github:test/test.git
把原来的
git remote add origin git@github.com:test/test.git
中的github.com替换成Host的名字github即可。
5.测试
$ ssh -T git@github.com
$ ssh -T git@gitlab.com
分别输入对应密钥的密码,测试成功。
记得在设置远程仓库地址的时候,修改对应的Host名称。建议把常用的git远程仓库设置为默认的密钥,生成默认密钥的命令如下:
ssh-keygen -t rsa -C "youremail@example.com"
只要Host不在config文件中,都是读取默认密钥。