如何同时使用外网码云和内网Gitlab

刚到新公司要用gitlab,我个人代码一直放在码云上。我在外包银行主场开发,银行内网用的gitlab,我平时用码云。

今天在开发自己的小程序时,推送代码一直报错,百度之后,是使用了gitlab的原因,导致本地不能和码云建立连接。

现在要为不同的平台匹配不同的公钥。

第一、删除git上的账户名和邮箱

1
用git config --global --list 进行查看你是否设置

我的删除了,如果没删除请删除

删除用户名和邮箱

1
2
$ git config --global --unset user.name "你的名字"
$ git config --global --unset user.email "你的邮箱"

第二,为gitlab和码云生成公钥,即生成新的 SSH keys

生成sshkey的方法

1
ssh-keygen -t rsa -C "[email protected]这里写你的邮箱"

注意,我现在连的外网,为码云的生成ssh-key

回车

然后输入sshkey存放的地址以及名称,‘ /c/Users/kc/.ssh/gitee_id_rsa’

然后再回车回车,

就生成了

切换到内网

重复上面的操作

第三部、添加识别 SSH keys 新的私钥

默认只读取 id_rsa,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中

1
2
3
$ ssh-agent bash
$ ssh-add ~/.ssh/github_id_rsa
$ ssh-add ~/.ssh/gitlab_id_rsa

第四部、多账号必须配置 config 文件

若无 config 文件,则需创建 config 文件

执行下面操作

1
$ touch ~/.ssh/config

打开这个文件,我用vscode打开的 把这些复制进去,不能完全照搬啊啊啊

····················································································

#Default gitee user Self
Host gitee.com 我用的码云,你可以是github
HostName gitee.com 我用的码云,你可以是github
User git 这里不用动
IdentityFile ~/.ssh/gitee_id_rsa 文件名需要修改 改成gitee_id_rsa

#Add gitLab user
Host 128.160.171.23 这是公司内网gitlab的地址
HostName 128.160.171.23 这是公司内网gitlab的地址
User git
IdentityFile ~/.ssh/gitlabnei_id_rsa 文件名需要修改 改成gitlabnei_id_rsa

····················································································

这样就配置好了config文件

第五步、在github和gitlab网站添加ssh

这一步不会的,请百度,我不写了,注意切换内外网

第六步、测试是否连接成功

测试内网gitlab

1
ssh -T 128.160.171.23

外网 记得切换啊啊啊啊

ok.成功了!

本人参考了这个https://blog.csdn.net/qq_30227429/article/details/80229167