网站首页 > 技术文章 正文
在工作中我们一定遇到过这种情况,就是在公司编写的代码会存储在公司内网的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的仓库了。
- 上一篇: Git分布式版本控制器常用命令和使用
- 下一篇:已经是最后一篇了
猜你喜欢
- 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安装过程)
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 530℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 493℃MySQL service启动脚本浅析(r12笔记第59天)
- 473℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 470℃启用MySQL查询缓存(mysql8.0查询缓存)
- 451℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 430℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 427℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)