设为首页 收藏本站
查看: 1334|回复: 0

[经验分享] gitlab/github 多账户下设置 ssh keys

[复制链接]

尚未签到

发表于 2018-1-10 19:39:31 | 显示全部楼层 |阅读模式
背景
  公司之前的版本控制工具一直用的svn,最近开发的新项目,代码准备改换到了gitlab上进行管理。而我自己平时写的一些代码是放在github上进行托管的,这二者都是基于git的开源分布式版本控制系统,在本地可以通过ssh进行远程登录验证和数据传输(关于ssh的详细介绍可以参考这篇博文:http://blog.csdn.net/macrossdzh/article/details/5691924)。
  具体操作是利用ssh在本地生成一对公私秘钥(keys),然后将公钥添加到注册的gitlab/github账户配置ssh key的地方即可。默认情况下本地生成的秘钥位于/Users/mac用户名/.ssh/(mac平台,本文针对os x系统介绍)。
  But,问题来了:默认情况下每个账户生成的秘钥位置和名称都是相同的,这样后生成的秘钥就会覆盖前面的秘钥导致其失效。解决的办法就是在生成后一个秘钥的时候对其重新命名,以避免冲突,同时将不同的秘钥配置到相对应的Host上面,这样在访问不同的远程仓库时调用不同的key,冲突也就解决了。具体操作如下:
生成gitlab秘钥
  默认你已经注册了gitlab/github账户,以我自己为例,公司项目用的gitlab,自己代码托管在github。先进行公司账号的设置:
  本地生成ssh keys命令:ssh-keygen -t rsa -C "注册的gitlab邮箱",生成的公司秘钥会提示是否需要重命名,公司gitlab的秘钥我们就使用默认名称,直接回车跳过,另外还会提示你设置密码,设置密码的话后续登陆会比较麻烦,也直接跳过。成功后大概是这样的:
DSC0000.jpg

  查看 .ssh/目录,可以看到公私秘钥已经生成,名称分别为id_rsa.pub、id_rsa
DSC0001.jpg

  执行命令查看公钥内容:cat ~/.ssh/id_rsa.pub,或者直接用nano编辑期打开id_rsa.pub。公钥大概是这个样子:
DSC0002.jpg

  将这部分代码添加到到gitlab账户的的SSH Keys中即可。
DSC0003.jpg

生成github秘钥
  终端执行命令:ssh-keygen -t rsa -C "注册的github邮箱",这次一定要注意,对生成定的秘钥进行重命名,这里暂且重命名为id_rsa_home,同样不设置密码。可以看到生成的公私秘钥已经分别被重命名为id_rsa_home.pub和id_rsa_home。
DSC0004.jpg

  可以查看公钥里面的内容:cat ~/.ssh/id_rsa_home.pub
DSC0005.jpg

  不要忘记将其拷到github的SSH Keys里~
  gitlab和github的秘钥是分开生成了,可怎么让这两份秘钥分别对应到相应的远程仓库呢?就是让id_rsa.pub认得gitlab,让id_rsa_home.pub认得github。既然不能自动识别,那就只好手动设置了:
配置config
  在.ssh/目录下新建config文件:touch config,通过nano编辑器进行如下配置:
DSC0006.jpg

  其中Host对应的名称是一个别名,命名可以随意,用来进行远程连接,当然使用真实的主机名称也是可以的。HostName和IdentityFile就是各自主机名称以及对应的秘钥文件了~
  这样配置之后,两份秘钥也就对应到各自相应的仓库上了。通过设置别名,也就可以设置任意多的账户了~
  最后利用别名检测下配置是否成功~
检测
  检测gitlab连接,如果提示是否建立连接,直接yes就行:
DSC0007.jpg

  检测github连接:
DSC0008.jpg

  不报错的话,就说明设置成功了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433676-1-1.html 上篇帖子: gitlab配置自动同步 下篇帖子: omnibus一键安装gitlab
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表