Git配置多个ssh-key管理不同仓库
问题描述
目前手上有多个git账号,分别用于个人学习、公司内部的一些项目,而且需要在同一台电脑上去管理这些账号。
- github,个人学习收集
- gitlab01,公司内部git
- gitlab02,个人测试
这些账号的邮箱设置不同的话,默认生产新key会把旧key覆盖掉。要解决这个问题,就需要生成多个不同的公私钥对。
解决办法
1、首先重置一下全局的邮箱和用户名配置:
git config --global --unset user.name git config --global --unset user.email
2、生成多个密钥对,且邮箱设置不同,生成过程手动填写目标文件保存路径,不要使用默认的。
ssh-keygen -t rsa -C "[email protected]"
生成过程省略,完成之后~/.ssh目录下文件列表应该如下:
[root@kylin ~/.ssh]# ls ~/.ssh id_rsa_github id_rsa_github.pub id_rsa_gitlab id_rsa_gitlab.pub know_hosts
3、开启ssh-agent,且添加私钥
ssh-agent -s ssh-add ~/.ssh/id_rsa_gitlab ssh-add ~/.ssh/id_rsa_github
4、在~/.ssh目录下新建一个名为config的文件,内容如下:
# github "[email protected]" Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github # gitlab "[email protected]" Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab
参数说明:
- Host:填写git服务器的域名。
- HostName:填写git服务器的域名。
- IdentityFile:指定私钥的路径。
调整config文件的权限:
$ chmod 644 ~/.ssh/config
然后github 和 gitlab上添加好公钥,这里自行搜索。
5、测试下是否认证成功,以测试 github为例:
ssh -vT [email protected]
6、进入不同的仓库,配置局部的邮箱和用户名:
git config user.name "yourname" git config user.email "youremail"
此时,便可以在不同的仓库使用不同的账号登录了。
后续还会分享更多运维技巧,欢迎关注。
相关推荐
Equation 2020-08-09
iamjiyu 2020-07-21
baolen 2020-08-15
87447007 2020-07-19
ArkShen 2020-07-05
formula 2020-11-12
huhongfei 2020-11-05
乾坤一碼農 2020-10-27
liumengyanysu 2020-10-22
E哥的aws认证攻略 2020-10-15
tianyafengxin 2020-10-08
guying 2020-10-05
好脑筋不如烂笔头 2020-09-17
nebulali 2020-09-11
佛系程序员J 2020-09-15
fenggit 2020-09-15
JustHaveTry 2020-09-11