ssh-keygen生成两个key pair分别用于链接公司gitlab和自己的github库
2016-06-22 18:15
351 查看
问题背景
通常情况下,git仓库如github都是通过使用SSH协议与客户端连接,就是说使用ssh-keygen生成一个密钥对,将公钥id_rsa.pub放到仓库的项目里,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。验证通过后,本地仓库就可以与服务器进行数据交换了。但是在实际工作中,一般公司都会搭建私有的git仓库(gitlab.xxx.com),于是就会存在这样的情况,在github有你私人的账号,比如我的是liuchunming033,而公司的gitlab中有我的工作账号liuchunming。
在同一台电脑上,我们不能指望通过ssh-keygen生成的一对密钥对,既能访问github又能访问公司私有的gitlab。
解决办法
必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用账户liuchunming033的公钥密钥对,链接到公司搭建的gitlab时,使用账户liuchunming的公钥密钥对。首先,进入~/.ssh目录下
cd ~/.ssh
生成用于访问github的密钥对id_rsa,id_rsa.pub。
ssh-keygen -t -rsa -C 'liuchunming033@163.com'
再生成用于访问公司搭建的gitlab的密钥对id_rsa_xxx,id_rsa_xxx.pub。
ssh-keygen -t rsa -C 'liuchunming@xxx.com' -f id_rsa_xxx
将生成id_rsa.pub添加到的github的账号Settings中, 将生成的id_rsa_xxx.pub添加到的gitlab的账号Settings中。
然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下:
Host gitlab.xxx.com ##可以随意命名,链接时使用这个名字
HostName gitlab.xxx.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_xxx
Host github.com
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa
至此,大功告成。
当链接到gitlab.xxx.com上的仓库时,会使用id_ras_xxx验证远端的公钥是否匹配。而链接到github.com上的仓库时,则使用id_ras验证远端的公钥是否匹配。
相关文章推荐
- CodeForces 681A A Good Contest (水题)
- Java EE中Ajax技术实例
- Jasig cas 单点登录系统Server&Java Client配置
- 省赛(蓝桥杯)参赛心得
- java 自定义annotation
- Yii 一些小的问题
- #ubuntu#ubuntu 下安装配置(更新)java1.8环境 jsk8
- Go_NO1_Go语言的初步认识
- java加密解密--openSSL 用法
- java加密解密--keytool 用法
- Python Django 之 模板
- Jenkins构建maven项目时日志报代码缺少jar包错误的解决办法
- java基础第20天_断点续传、屏广软件
- C++ 构造函数的对象初始化列表
- SpringMVC实现RESTful风格
- 梦断代码阅读笔记01
- spring 监听器 IntrospectorCleanupListener简介
- 关于在Reshaper中添加代码模板代码段
- Spring的作用域以及RequestContextListener作用
- 终于解决!!RF切换工作目录,调用其他目录中的python函数,搞屎我了