Git多个账户秘钥管理

由于公司团队使用 GitLab 来托管代码,同时,个人在 Github 上还有一些代码仓库,可公司邮箱与个人邮箱是不同的,由此产生的 SSH key 也是不同的,这就造成了冲突 ,文章提供此类问题的解决方案:如何在一台机器上面同时使用 Github 与 Gitlab 的服务?

生成ssh key

1
2
3
4
#生成新的ssh key并命名为id_rsa_gs
[root@localhost cps]# ssh-keygen -t rsa -C "youremail@email.com" -f ~/.ssh/id_rsa_gs
[root@localhost cps]# ls ~/.ssh/
config id_rsa id_rsa_gs id_rsa_gs.pub id_rsa.pub known_hosts

远程主机添加公钥

添加GITHUB公钥

编辑ssh的cofnig文件

1
2
3
4
5
6
7
8
9
10
11
12
vim ~/.ssh/config

# Default 默认配置,一般可以省略
Host github.com
Hostname github.com
User git
Identityfile ~/.ssh/id_rsa
# Company 给一个新的Host称呼
Host 192.168.0.31 // 主机名字,不能重名
HostName 192.168.0.31 // 主机所在域名或IP
User git // 用户名称
IdentityFile ~/.ssh/id_rsa_gs // 私钥路径

测试连接

1
2
[root@localhost cps]# ssh -T git@192.168.0.31
Welcome to GitLab, HAHA!

修改本地git配置文件

1
2
3
4
[root@localhost cps]# vim .git/config 
[remote "origin"]
   url = git@192.168.0.31:fe/cps.git #对应上面的用户@对应上面的Host:项目地址
   fetch = +refs/heads/*:refs/remotes/origin/*