程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

公司代码在内网的gitlab上,但是又想访问github,该怎么配置呢?

balukai 2025-02-24 14:59:34 文章精选 4 ℃

在工作中我们一定遇到过这种情况,就是在公司编写的代码会存储在公司内网的Gitlib上,但是我们在开发中又很想让优秀的代码连接到开源项目上,而这些开源的项目又都在外网的GitHub上。这个时候我们就需要在本地配置两个 SSH key,一个是内网的,一个是外网的。

那么我们应该如何配置呢?

生成SSH key

首先我们需要生成两个SSH key

生成一个github使用的key

ssh-keygen -t rsa -C 'xxxxx@163.com' -f ~/.ssh/github_id_rsa

然后再生成一个公司邮箱生成的gitlib的key

ssh-keygen -t rsa -C 'xxxxx@gongsi.com' -f ~/.ssh/gitlib_id_rsa

修改配置文件

这个时候,需要在~/.ssh 目录下创建一个config的文件,并且在这个文件中添加如下的内容。

# gitlib
Host gitlib.com
HostName gitlib.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlib_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

其中 Host 和 HostName 是Git服务的域名,IdentityFile 则是值私钥的路径。

配置网站公钥Public Key

完成上述配置之后,分别去GitHub和gitlab上分别配置对应Public Key。需要注意的是一定要分别进行配置。

测试生效

通过如下的两个命令分别测试

ssh -T git@gitlib.com
ssh -T git@github.com

Git命令的配置

虽然通过上面的方式分别配置成功了两个SSH key。但是还需要注意的就是提交用户信息。因为我们分别往GitHub和GitLib上提交的用户信息可能不是同一个信息。所以在配置Git全局用户信息的时候,就需要注意使用哪个邮箱进行配置。

例如如果全局配置的是GitHub的邮箱,那么就需要在GitLib下再配置一个公司的邮箱。

例如

# 配置全局个人信息为公司信息,配置员工信息
git config --global user.name 'chengxuyuan'
git config --global user.email 'xxxx@company.com'

# 在某个github仓库下,配置个人信息
git config user.name '快乐的程序员'
git config user.email 'xxx@qq.com'

总结

通过上面的一系列的配置,我们就可以配置一个既可以访问公司内网的GitLib也可以访问外网的GitHub的仓库了。

最近发表
标签列表