如何使用同一个gitlab账号提交到外网、内网gitlab

  最近在公司内网服务器上搭建了gitlab,已能正常运行,如下图:

   现在有这样一个需求,之前我们使用的是外网gitlab管理代码,但是现在公司要求在内网搭建gitlab。而我外网已经有了一个账号,现在想在内网gitlab上面创建相同的账号,方便管理。但这会对我们使用ssh方式提交代码有影响。

思路

  ssh 方式链接到 外网GitLab/内网GitLab,需要唯一的公钥,如果想在一台电脑绑定同一个帐号到不同网段的gitlab,需要两个条件:

  1. 能够生成两对私钥/公钥
  2. push 时,可以区分两个公钥,推送到相应的仓库

解决方案:

  1. 生成 私钥/公钥 时,密钥文件命名避免重复
  2. 设置不同 Host 对应不同 HostName ,对应的密钥也不同

1.全局配置

git config --global user.name "yangfeng"

git config --global user.email "[email protected]"

2.原先已经使用命令生成了一对密钥(外网),现在生成另一对(内网):

ssh-keygen -t rsa -C "[email protected]"  -f /c/Users/Administrator/.ssh/id_rsa_work

如下图所示:

将id_rsa_work中的内容拷贝到内网gitlab ssh-key位置:

进入目录C:\Users\Administrator 选中.ssh目录右键gitbash执行:

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa_work

使用命令 ssh-add  -l 查看添加的结果。ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。

 vim  ~/.ssh/config,输入下面的内容:

Host gitlab.com
  RSAAuthentication yes
        IdentityFile ~/.ssh/id_rsa
Host 192.168.2.183
  HostName 192.168.2.183
  PORT 822
  RSAAuthentication yes
      IdentityFile  ~/.ssh/id_rsa_work
  1. #Host myhost(这里是自定义的host简称,以后连接远程服务器就可以用命令ssh myhost)[注意下面有缩进]

  2. #HostName 主机名可用ip也可以是域名(如:github.com或者bitbucket.org),这里的192.168.2.183就是公司内网gitlab地址

  3. #Port 服务器open-ssh端口(默认:22,默认时一般不写此行)。但我是docker安装的gitlab,映射到主机的端口是822,不是22,所以这里以你自己gitlab安装后的端口为准。

  4. #IdentityFile 证书文件路径(如~/.ssh/id_rsa_*)。

  测试:

猜你喜欢

转载自blog.csdn.net/xiaoxiangzi520/article/details/81166353