现在大多数公司都有 GIT 来管理代码版本控制了,既然用到 GIT,相信大家都接触过 Github、Gitlab、Gitee 这些远程仓库,或者是公司内部自行搭建的 GIT 仓库。

当用到 SSH 方式来连接 GIT 仓库的时候,难免会同时用到多个仓库,一般生成公私钥的默认配置文件为:

  • 私钥:C:\Users\xxx.ssh\id_rsa

  • 公钥:C:\Users\xxx.ssh\id_rsa.pub

那么问题来了,我先生成 Github 的,再生成 GitLab 的,那么后面配置的 Gitlab 的公私钥文件会覆盖前面配置 Github 的,从而导致 Github 仓库无法连接。。

这样的配置只能同时连接一种类型的仓库,如何在同一台电脑做到同时连接多个不同的仓库呢?

一、生成多个仓库公私钥

1、生成 Github 的:

ssh-keygen -t rsa -b 4096 -C "your_email@github.com" -f ~/.ssh/github_id_rsa

2、生成 Gitlab 的:

ssh-keygen -t rsa -b 4096 -C "your_email@gitlab.com" -f ~/.ssh/gitlab_id_rsa

后面有多个仓库都依此类推,用 -f 来指定不同的文件名称:xxx_id_rsa,从而区分不同的仓库类型,而不用担心被后面默认生成的覆盖。

二、将公钥添加到仓库里面

复制 xxx_id_rsa.pub 公钥文件里面的内容到对应仓库里面,以下 Github 示例:

三、添加 config 配置

~/.ssh 目录下创建 config 文件,添加以下内容:

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa # gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id_rsa # 多个依此类推
# ...

四、测试连通性

分别测试多个仓库的连通性,验证配置是否生效。

1、测试Github:

$ ssh -T git@github.com

2、测试Gitlab:

$ ssh -T git@gitlab.com

以下是 Github 连通示例:

$ ssh -T git@github.com
Enter passphrase for key '/c/Users/xxx/.ssh/github_id_rsa':
Hi javastacks! You've successfully authenticated, but GitHub does not provide shell access.

这样配置完,我们就能愉快的使用各种不同的仓库了~

- END -

推荐阅读:

关注Java技术栈公众号在后台回复:git,可获取一份栈长整理的最新 Git 技术干货。

点击「阅读原文」和栈长学更多~

Git 的这个神技,学会爽歪歪~的更多相关文章

  1. Linux C++ 调试神技--如何将Linux C++ 可执行文件逆向工程到Intel格式汇编

    Linux C++ 调试神技--如何将Linux C++ 可执行文件逆向工程到Intel格式汇编 对于许多在windows 上调试代码的人而言, Intel IA32格式的汇编代码可能并不陌生,因为种 ...

  2. 【惊喜】Github爆火的java面试神技+java核心面试技术已开发下载,大厂内都传疯了!

    前言 今年,由于疫情的影响,很多互联网企业都在缩减招聘成本.作为程序员,原本这两年就面临竞争激烈.年龄危机的问题,而现在的求职局面又完全是企业在挑人的状态. 所以最好能在空闲的时候看看大厂相匹配的技术 ...

  3. 网页icon和文本对齐神技 2016.03.23

    一直以来icon和文本需要对齐都使用vertical-align: middle;的方法,但兼容性不理想.参考了鑫旭大大的博客,终于收获不用vertical-align可以对齐的神技,原博点这里. 代 ...

  4. Windows上的的神技

    Windows上的的神技 不用借助任何第三方软件,其实Windows也大有可为——比你目前了解得至少要多得多,强大技能快来get起来! 1.文件隐藏谁的电脑里没点小秘密?东藏西藏到最后自己都找不到了有 ...

  5. C# -- 使用递归列出文件夹目录及目录下的文件 神技do{}while(false)

    C# -- 使用递归列出文件夹目录及目录下的文件 使用递归列出文件夹目录及目录的下文件 1.使用递归列出文件夹目录及目录下文件,并将文件目录结构在TreeView控件中显示出来. 新建一个WinFor ...

  6. 神技do{}while(false)

    神技do{}while(false) do{}while(false)或者说do{}while(0),本人在linux源码中学得,起初看起来比较奇怪,但在处理连续流程中特别有用,例如ABC三个流程,A ...

  7. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)

    利用Nginx轻松实现浏览器中Ajax的跨域请求(前后端分离开发调试必备神技) 前言 为什么会出现跨域? 造成跨域问题的原因是因为浏览器受到同源策略的限制,也就是说js只能访问和操作自己域下的资源,不 ...

  8. 神技!微信小程序(应用号)抢先入门教程(附最新案例DEMO-豆瓣电影)持续更新

    微信小程序 Demo(豆瓣电影) 由于时间的关系,没有办法写一个完整的说明,后续配合一些视频资料,请持续关注 官方文档:https://mp.weixin.qq.com/debug/wxadoc/de ...

  9. Git分布式项目管理 入门到学会

    Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库,英文名reposi ...

随机推荐

  1. luoguP1636 Einstein学画画 x

    P1636 Einstein学画画 题目描述 Einstein学起了画画, 此人比较懒--,他希望用最少的笔画画出一张画... 给定一个无向图,包含n 个顶点(编号1~n),m 条边,求最少用多少笔可 ...

  2. Spark指标项监控

    监控配置 spark的监控主要分为Master.Worker.driver.executor监控.Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要 ...

  3. RESTful API Design

    https://restful-api-design.readthedocs.org/en/latest/scope.html http://blog.mashape.com/30-ways-to-m ...

  4. linux面试常见

    https://www.cnblogs.com/wanghuaijun/p/7421008.html 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 ...

  5. C#操作WMI文章汇总

    http://blog.csdn.net/linux7985/article/details/5698932 http://www.cnblogs.com/ocean2000/archive/2008 ...

  6. 八、MD5加密并封装,并调用封装方法

    一.MD5加密 封装Md5 public class Md5 { //十六进制下数字到字符的映射数组 private static final char hexDigits[] = { '0', '1 ...

  7. VC++获取CPU序列号 CPU ID

    CString strCPUID; unsigned long s1, s2; __asm{ mov eax, 01h xor edx, edx cpuid mov s1, edx mov s2, e ...

  8. nodejs之express中间件cookie-parser使用

    知识点: * .domain的使用,.aaa.com的域名都共享这个cookie信息 * res.cookie(,domain:'.aaa.com'}); * .获取所有cookie,设置cookie ...

  9. Selenium 2自动化测试实战8(控制浏览器)

    一.控制浏览器 1. 控制浏览器窗口大小 webdriver提供了set_window_size()方法来设置浏览器的大小 #test.py #coding:utf-8 from selenium i ...

  10. delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?

    MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone  The form is not allowed to close, so nothing happens.caHide  The ...