一般情况下,我们都是一台电脑配置一个git账号,可以是GitHub账号,也可以是
oschina(码云)账号或者是gitLab账号。我之前用过GitHub和oschina,
今天公司配置了一个内部的gitLab。这就涉及到一个问题,如何在一台电脑上配置两个或者是两个以上的git账号。
这里以在一台电脑上同时配置oschina(码云)账号和内部的gitLab账号为例:
(1)生成并部署SSH key
打开git bash,输入以下命令生成 SSH Key
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
-首先生成和部署gitLab的SSH key
在相应的.ssh目录下会生成名为id_rsa私钥文件和id_rsa.pub公钥文件, 打开id_rsa.pub公钥文件,复制里面的公钥添加到gitLab的添加SSH秘钥处。
然后在git bash中输入以下命令测试gitLab的SSH秘钥是否部署成功。 这里的xxx.xxx.xxx.xx是公司内部的gitLab的地址
ssh -T git@xxx.xxx.xxx.xx
出现以下提示,表示部署gitLab的SSH key成功
到这里gitLab的账号配置就成功了。
-下面开始生成和部署oschina(码云)的SSH key。
但是这里要注意生成秘钥文件时,不能再使用默认的文件名id_rsa, 否则会覆盖之前的gitLab的秘钥文件。
这里保存为id_rsa_oschina:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_oschina -C "xxxxxxxxx@qq.com"
这时候就会在.ssh目录下又生成一对公私钥文件,同样是打开公钥文件id_rsa_oschina.pub,复制里面的公钥添加到oschina中添加SSH秘钥处。
(2)添加秘钥到SSH Agent
因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加的SSH agent中。
ssh-agent bash
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_oschina
(3)创建并配置config文件
在.ssh目录下创建一个config文本文件,添加相关配置。
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可。
主要有以下配置:
HostName 这个是真实的域名地址
IdentityFile 这里是id_rsa的地址
PreferredAuthentications 配置登录时用什么权限认证–可设为publickey,password publickey,keyboard-interactive等
User 配置使用用户名
我的配置如下
# 配置git.oschina.net
Host git.oschina.net
HostName git.oschina.net
IdentityFile C:\\Users\\hh\\.ssh\\id_rsa_oschina
PreferredAuthentications publickey
User gu
# 配置gitLab
Host xxx.xxx.xxx.xx
HostName xxx.xxx.xxx.xx
IdentityFile C:\\Users\\hh\\.ssh\\id_rsa
PreferredAuthentications publickey
User gu
这个时候再通过终端测试是否部署SSH Key成功
(4)用户名和邮箱的配置
因为一台电脑上配置了多个git账号,所以就不能再配置全局的用户名和邮箱了,而是在不同的仓库下,如果需要连接不同的git账号,配置相应的局部用户名和邮箱即可,如果之前配置过全局的用户名和邮箱,需要取消配置
git config --global --unset user.name
git config --global --unset user.email
配置局部的用户名和邮箱
git config user.name "xxxx"
git config user.email "xxxx@xx.com"