Git配置之根据多Git服务使用对应SSH-Key
在实际开发中,遇到这样一个问题,公司服务是GitLa,自己的业余项目开发用到了GitHub,两者的账户不同,以我为例,公司邮箱he@company.com,GitHub是个人邮箱he@1991421.cn,我并不想使用同一个Key,希望对于不同的Git服务使用对应的认证信息Key,网上检索后,方法如下。
配置步骤
- 生成SSH-key
1 | cd ~/.ssh/ |
这样两者的密钥就是分开生成了,互不冲突
粘贴公钥到对应的平台
cat id_rsa.pub
cat id_rsa_company.pub
配置config
执行touch config
,创建配置文件
将下面的配置粘贴进去
1 | # company-GitLab |
*即匹配其它所有
- 检测是否成功不报错,说明OK。这样就可以正常的拉取仓库和提交代码了。
1
2
3
4
5# GitHub
ssh -T git@GitHub.com
# 内网GitLab
ssh -T git@192.168.1.150
用户名/邮箱
令牌区分只是解决了认证权限,但本身提交用户名及邮箱却会是默认全局的配置,如果想个性化,需要在仓库下执行以下命令。
1 | $ git config [--global] user.name "[name]" |
如果想根据不同的类型仓库,比如公司的自动使用一套配置,自己的项目使用另一套呢,这样就不用每次拉取一个仓库都要手动设定一次了。具体如何操作可以戳这里
常见问题
- ssh登录,提示权限拒绝
确保密码、配置正确,如果还是提示的话,其实可能性是出在权限上,注意确保.ssh
文件夹权限,建议直接777