网站首页 > 技术文章 正文
在工作中我们一定遇到过这种情况,就是在公司编写的代码会存储在公司内网的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的仓库了。
猜你喜欢
- 2025-07-07 Git分布式版本控制器常用命令和使用
- 2025-07-07 macbook 上安装git和将github作为托管服务器
- 2025-07-07 Jenkins实战(六)基于Jenkinsfile文件流水线发布
- 2025-07-07 Git基本使用,分布式版本控制(git fench)
- 2025-07-07 手把手教你如何上传代码到gitee服务器
- 2025-07-07 从零打造自己的 国产鸿蒙(OpenHarmony)定制系统-完整可落地流程
- 2025-07-07 「工具」代码管理工具Git(git源代码管理工具)
- 2025-07-07 掌握git命令,图解一目了然(掌握git命令,图解一目了然的步骤)
- 2025-07-07 Git 2.47发布:引入增量多包索引、自动合并VS Code配置等
- 2025-07-07 Git安装避坑指南(git安装过程)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)