github是网络公有代码仓库,一般用于私人代码托管,而gitlab一般是企业搭建的内部代码仓库。工作期间,我们都会同时用到这两个仓库。可公司邮箱与个人邮箱是不同的,由此产生的 SSH key 也是不同的,这就造成了冲突 。如何在一台机器上面同时使用 Github 与 Gitlab 的服务?

1.生成秘钥

公司的GitLab生成一个SSH-Key

# 在~/.ssh/目录会生成gitlab_id-rsa和gitlab_id-rsa.pub私钥和公钥。我们将gitlab_id-rsa.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。$ ssh-keygen -t rsa -C "注册的gitlab邮箱" -f ~/.ssh/gitlab_id-rsa

公网github生成一个SSH-Key

# 在~/.ssh/目录会生成github_id-rsa和github_id-rsa.pub私钥和公钥。我们将github_id-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。$ ssh-keygen -t rsa -C "注册的github邮箱" -f ~/.ssh/github_id-rsa

2.添加config

~/.ssh下添加config配置文件,内容如下:
# github key
Host githubPort 22User gitHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/github_id-rsa
Host gitlabPort 22User gitHostName gitlab.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_id-rsa

下面对上述配置文件中使用到的配置字段信息进行简单解释:

Host它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。这里可以使用任意字段或通配符。当ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的`/etc/ssh/ssh_config`配置信息。
Port自定义的端口。默认为22,可不配置
User自定义的用户名,默认为git,可不配置
HostName真正连接的服务器地址
PreferredAuthentications指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile指定本次连接使用的密钥文件

3.配置仓库

假设gitlab与jgithub的工作目录分别如下所示:

github工作仓库:~/workspace/github
gitlab工作仓库:~/workspace/gitlab

则配置如下:

#gitlab
cd ~/workspace/gitlab
git init
git config --global user.name 'gitlab'
git config --global user.email 'gitlab@company.com'#github
cd ~/workspace/github
git init
git config --local user.name 'personal'
git config --local user.email 'personal@163.com'

4.测试

# 测试github
$ ssh -T git@github.com# 测试gitlab
$ ssh -T git@gitlab.com

转载于:https://www.cnblogs.com/bdhk/p/7423329.html

github和gitlab仓库一起使用相关推荐

  1. 【Git、GitHub、GitLab】十 将git仓库备份到本地

    上一篇文章学习记录了工作中常用的一些git命令,点击链接查看:[Git.GitHub.GitLab]九 工作中非常重要的一些git用法 文章目录 1 git的传输协议 2 如何将git仓库备份到本地 ...

  2. 【Git、GitHub、GitLab】五 git中裸仓库.git下的内容

    上一篇文章学习了git的文件重命名与git -log 的系列命令的使用方法.点击链接查看上一篇文章:[Git.GitHub.GitLab]四 Git文件重命名的简单方法以及使用git log查看版本演 ...

  3. 【Git、GitHub、GitLab】三 Git基本命令之创建仓库并向仓库中添加文件

    前两篇文章已经学会了Git的基本命令与创建仓库的命令,点击链接查看上一篇文章:[Git.GitHub.GitLab]二 Git基本命令之建立Git仓库,本篇文章就来创建一个有模有样的仓库.该仓库中的代 ...

  4. 【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库

    上一篇文章学习了Git的安装与最小配置:[Git.GitHub.GitLab]一 Git安装与Git最小配置 文章目录 建立Git仓库 建立Git仓库 有两种方式可以建立Git仓库: 用Git之前已经 ...

  5. Git,Github和Gitlab简介和基本使用

    什么是Git Git是一个版本控制系统(Version Control System,VCS). 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 多年前,我在法国做第一 ...

  6. git、github、gitlab、gitee都是什么?

    各种git git 是一种版本控制系统,是一个命令,是一种工具. github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱. gitlab 类似于 github,一般用于在企业 ...

  7. gitblit如何迁移入gitlab合并迁移_github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器...

    一. github仓库迁移到gitlab 先进入 new project: 选择 Import project, 选择下面的github: 进入后,这里需要github的 personal acces ...

  8. Git、GitHub、GitLab三者之间的联系以及区别

    Git.GitHub.GitLab三者之间的联系以及区别 在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转) 1.什么是 Git? Git 是一个版本控制 ...

  9. GitLab - Ubuntu18搭建GitLab仓库服务器(转)

    GitLab - Ubuntu18搭建GitLab仓库服务器(转) 前期准备 sudo apt-get updatesudo apt-get install -y curl openssh-serve ...

最新文章

  1. php计算有多少页,PHP 计算页面执行时间
  2. Python中’__main__’模块的作用
  3. 2019 阿里巴巴云原生这一年
  4. C语言笔记:格式化输入输出(fprintf、fscanf、sscanf...)
  5. 第二轮冲刺-Runner站立会议08
  6. SQL一些时间格式的转换
  7. 【Linux】Linux进阶指令
  8. java类静态初始化_Java静态代码块和类初始化、实例初始化过程
  9. mysql 端口号_mysql的端口号(mysql常用端口号)
  10. 程序员应该如何对待面试?
  11. 2017,那些引发关注的新建展馆
  12. 对学习数据结构的建议
  13. 如何进行 Linux 服务器安全维护
  14. 音视频开发之旅(34) - 基于FFmpeg实现简单的视频解码器
  15. mysql查询日期格式_mysql 日期格式化查询
  16. 微信订阅公众号如何开通文章留言评论功能?经验分享!怎样获取微信订阅公众号留言管理功能?
  17. 电脑在登陆界面如何打开计算机管理,电脑打不开路由器管理界面怎么解决
  18. 最美诗词可切换网站单页源码
  19. Nginx《四》——NginxNginx 高级配置
  20. 基于C#-winform的书店采购管理系统的设计

热门文章

  1. maven设置jdk版本
  2. MongoDB源码阅读之ReplSet源码分析
  3. C# winfrom listView
  4. nodejs匿名函数
  5. Spring Cloud 微服务架构
  6. CenterOs 防火墙设置
  7. MobX快速入门教程(重要概念讲解)
  8. 无限“递归”的python程序
  9. velocityjs 动画库 比jquery默认的animate强
  10. jQuery缓存数据——仿Map