使用gitlab账号时间久了,难免会申请多个gitlab账号,有时我们会在同一台电脑上管理两个或者以上的gitlab账号的仓库,这时候可怎么办呢?
假设你的两个gitlab账号分别为aitlp
和weiyanzixun
在一台机器上,同时使用两个gitlab账号的实现方法:
1.生成ssh-key
使用下面的命令在本地生成ssh key:
ssh-keygen -t rsa -C "your-email-address"
注意:既然你有两个gitlab账号,因此在生成ssh key时需要注意保存的两个key的文件名要注意区别,比如第一个账号:生成的文件名为
id_rsa_home
,第二个叫id_rsa_work
,这样就可以加以区分。
2.将ssh-key添加到gitlab
将生成的两个ssh公钥,即id_rsa_home.pub
和id_rsa_work.pub
分别添加到你的两个gitlab账户上。
3.配置config文件
在{USER_HOME}/.ssh/
目录下,新建一个config文件,在文件中添加如下内容:
# For me
Host home_gitlab
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_home
# For work
Host work_gitlab
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_work
以上内容,需要根据自己的文件进行相应的修改;
4.测试
$ ssh -T git@home_gitlab
Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
Hi aitlp! You've successfully authenticated, but gitlab does not provide shell access.
Michael@DESKTOP-BL9MF61 MINGW64 ~/.ssh
$ ssh -T git@work_gitlab
Hi weiyanzixun! You've successfully authenticated, but gitlab does not provide shell access.
5.clone项目
接下来,比如aitlp的某个仓库地址为git@gitlab.com:aitlp/Spark.git
,克隆时地址改为git clone git@home_gitlab:aitlp/Spark.git
,比如weiyanzixun账号的某个仓库地址为git@gitlab.com:weiyanzixun/Spark.git
,克隆时地址修改为git clone git@work_gitlab:aitlp/Spark.git
,也就是对应你config文件配置的Host项。
提示:ssh默认会找
id_rsa
这个私钥,这里因为我两个账号的地址都不是默认的id_rsa
,所以我两个地址都改了,如果你的其中一个账号密钥文件是默认的名称,则此账号的clone时地址无需改变。
如果是你本地已经有的项目,需要修改origin url,操作如下:
git remote rm origin
git remote add origin git@home_gitlab:aitlp/Spark.git
即,将地址更改为config对应的Host。
系列文章: