GIT高级配置多账号多库KEY

本地GIT的配置,能都同步到github与gitlab:

1.1 GITLAB的远程库名标识改名

因为本地GIT已经与GITLAB连接了,需要再配置下GIT与GITHUB的连接。

 

 

 

1.2本地库同步到GITHUB上,并将关联名改为GITHUB

首先GITHUB上建立一个learngitlab仓库。

 

git remote add github https://github.com/huamixu/learngitlab.git

 

然后git push github master

管理GIT生成的多个ssh key,对应多个远程库

问题背景

通常情况下,git仓库如github都是通过使用SSH协议与客户端连接,就是说使用ssh-keygen生成一个密钥对,将公钥id_rsa.pub放到仓库的项目里,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。验证通过后,本地仓库就可以与服务器进行数据交换了。

但是在实际工作中,一般公司都会搭建私有的git仓库(gitlab.xxx.com),于是就会存在这样的情况,在github有你私人的账号,比如我的是liuchunming033,而公司的gitlab中有我的工作账号liuchunming

在同一台电脑上,我们不能指望通过ssh-keygen生成的一对密钥对,既能访问github又能访问公司私有的gitlab这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

 

问题解决思路

我们可以在C:\Users\用户名\.ssh 下新建一个config文件配置一下,就可以解决问题。

 

解决办法

步骤1

如果之前有设置全局用户名和邮箱的话,需要unset一下

git config --global --unset user.name

git config --global --unset user.email

 

然后在不同的仓库下设置局部的用户名和邮箱
比如在公司的repository下

git config user.name "yourname"

git config user.email "youremail" 

在自己的github的仓库在执行刚刚的命令一遍即可。

这样就可以在不同的仓库以不同的账号登录。

步骤2

必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用账户liuchunming033的公钥密钥对,链接到公司搭建的gitlab时,使用账户liuchunming的公钥密钥对。

首先,进入~/.ssh目录下cd ~/.ssh

生成用于访问github的密钥对id_rsaid_rsa.pub

ssh-keygen -t -rsa -C 'liuchunming033@163.com'

再生成用于访问公司搭建的gitlab的密钥对id_rsa_xxxid_rsa_xxx.pub

ssh-keygen -t rsa -C 'liuchunming@xxx.com' -f id_rsa_xxx

将生成id_rsa.pub添加到的github的账号Settings中, 将生成的id_rsa_xxx.pub添加到的gitlab的账号Settings中。

然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下:

Host gitlab ##可以随意命名,链接时使用这个名字

HostName git.iec.io

User xxx@xxx.com

Port 6060

IdentityFile ~/.ssh/id_rsa_inspurgitlab

Host github.com

HostName github.com

User bcccc@bcccc.com

Port 80

IdentityFile ~/.ssh/id_rsa

至此,大功告成。

当链接到gitlab.xxx.com上的仓库时,会使用id_ras_xxx验证远端的公钥是否匹配。而链接到github.com上的仓库时,则使用id_ras验证远端的公钥是否匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值