一般在工作当中,我们不仅只有公司Gitlab账号的ssh-key,还会有一个自己Github账号的ssh-key,那么下面,我教大家如何在自己的Mac上配置两个ssh-key。

生成两个ssh-key

1
2
ssh-keygen -t rsa -C "github@gmail.com" -f ~/.ssh/id_rsa_github
ssh-keygen -t rsa -C "gitlab@gmail.com" -f ~/.ssh/id_rsa_gitlab

执行完成后,打开~/.ssh目录:

1
open ~/.ssh

可以看到在该目录下生成了两对公私钥,即:
github@gmail.com邮箱对应的私钥文件id_rsa_github、公钥文件id_rsa_github.pub;
gitlab@gmail.com邮箱对应的私钥文件id_rsa_gitlab、公钥文件id_rsa_gitlab.pub;

将公钥文件复制到相应的Github下

将公钥文件id_rsa_github.pub、id_rsa_gitlab.pub里面的内容复制到相应的Github下。

设定全局Github账号和公司Gitlab账号

全局设置:

1
2
git config --global user.name "github"
git config --global user.email "github@gmail.com"

在公司仓库下设置:

1
2
git config user.name "gitlab"
git config user.email "gitlab@gmail.com"

查看某仓库的Git账号:

1
2
git config user.name
git config user.email

创建config文件

在~/.ssh目录下创建config文件:

1
touch config

编辑config文件:

1
2
3
4
5
6
7
8
9
10
11
# github server
Host github.com
Hostname github.com
User github
IdentityFile ~/.ssh/id_rsa_github

# gitlab server
Host gitlab.com
Hostname gitlab.com
User gitlab
IdentityFile ~/.ssh/id_rsa_gitlab

大功告成

测试:

1
2
3
4
ssh -T git@github.com

----------输出信息----------
Hi github! You've successfully authenticated, but GitHub does not provide shell access.
1
2
3
4
ssh -T git@gitlab.pab.com.cn

----------输出信息----------
Welcome to GitLab, gitlab!

PS:如果到这里你没有成功的话,别急,教你解决问题的终极办法 -- debug

比如测试github:

1
ssh -vT git@github.com

-v 是输出编译信息,可以根据编译信息去解决问题,一般都是config文件里面的内容写错了。