博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置多个git远程仓库的ssh-Key切换
阅读量:6948 次
发布时间:2019-06-27

本文共 1094 字,大约阅读时间需要 3 分钟。

hot3.png

目前的git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户 (first),生成生成密钥对后,将公钥保存至github,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。 但是在实际工作中,一般公司内部都有自己的独立的git仓库(gitlab.xxx.com),于是就会存在这样的情 况,在github有私人的账号first,公司的gitlab中的工作账号sencord,first和second因为环境不同,必须配置不同的username和email。所以必须对每个账号分别生成独立的公钥密钥对。在链接到github时,使用first的公钥密钥对,链接到公司内的gitlab时,使用second的公钥密钥对。假设first的密钥文件为id_rsa,second的密钥文件为id_rsa_second. 在默认情况下,ssh总是使用id_rsa密钥文件进行链接,这样对于second账号的认证自然是不通过的, 不过,要实现多帐号下的SSH key切换在客户端做一些配置即可。 首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C 生成新的 SSH key:id_rsa_second

ssh-keygen -t rsa -C 'second@mail.com' -f id_rsa_second

生成后将新的ssh public key添加到内部的gitlab仓库中, 然后在~/.ssh 目录下创建config文件,该文件用于配置私钥对应的服务器。内容如下:

Host gitlab.xxx.com ##可以随意命名,链接时使用这个名字    HostName gitlab.xxx.com    User git    Port 22    IdentityFile ~/.ssh/id_rsa_second

执行

git clone git@gitlab.xxx.com:second/test.git

时会使用second的id_rsa_second与服务器进行连接.而链接非gitlab.xxx.com服务器时则会使用first的密钥进行链接。至此,大功告成!

注意:git根据配置文件的user.email来获取git帐号显示author信息,所以对于多帐号用户一定要 记得将user.email改为相应的email()。

转载于:https://my.oschina.net/guanyue/blog/485918

你可能感兴趣的文章
Sybase 数据库误删除后恢复成功
查看>>
微博首席架构师杨卫华:新浪微博技术架构分析
查看>>
myblog test
查看>>
ReentrantLock 实现原理
查看>>
初识Ansible
查看>>
监控mysql从服务器状态
查看>>
迭代模式
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
浅谈linux启动流程
查看>>
java/strust2实现多文件上传
查看>>
一个urllib的post方法的使用例子
查看>>
Python学习笔记(4)--- Flask开发入门
查看>>
C语言探索之旅】第一部分第四课第三章:变量的世界之显示变量内容
查看>>
nginx 之 proxy_pass详解
查看>>
Mysql乐观锁和悲观锁
查看>>
tcp迭代服务器程序
查看>>
对一个元素实现水平和垂直居中显示,当浏览器窗口改变大小的也能实现完全居中显示...
查看>>
系统架构方式
查看>>
我的友情链接
查看>>