因为实际开发需要,公司使用的是Gitlab,我自己私下用的是Github,我想在公司电脑上同时配置上这两个。
网上有诸多教程针对这个配置,我开始也是照此教程进行操作,但是都失败了。最终自己根据自己操作居然成功了。实现了Github和Gitlab的共存。
1、配置好自己的Github
- 1.1、在自己
C:\Users\william
文件夹下,通过命令行工具mkdir .ssh
,新建了一个.ssh的文件夹; - 1.2、
cd .ssh
,通过ssh-keygen -t rsa -C "我的邮箱地址"
生成自己的github的一对RSA密钥,一路enter,直到最后successful为止 - 1.3、然后将.ssh文件夹下的id_rsa.pub文件打开,复制其中的内容添加到github网页版的ssh中即可
- 1.4、通过
ssh -t git@github.com
测试连通与否,其中Are you sure you want to continue connecting (yes/no)?
的输入yes
就可以
2、配置好自己的Gitlab
- 2.1、基本上是根据公司的配置文档来,基本操作和上面一样
3、总结与思考
3.1 总结
- 3.1.1、最终我的
.ssh
文件夹里只有config
、id_rsa
、id_rsa.pub
、known_hosts
文件,其中我在config
文件里添加了Github的域名指向,不然ssh -t git@github.com
提示失败。 - 3.1.2、根据网上的教程不一定适合自己公司的情况,主要变量在于每个公司的Gitlab配置时候可能有某些环境变量不同,体现在最终
.ssh
文件夹里的config
文件和known_hosts
文件里内容不同,主要还是config
文件。所以一定要根据自己公司情况摸索,走出一条适合自己情况的配置之路。我在花了大半天时间看了好几个网上的教程都宣告失败。 - 3.1.3、github通过
ssh-keygen -t rsa -C "我的邮箱地址"
生成自己的github的一对RSA密钥后,会让你选择可以自定义保存密钥的文件名Enter file in which to save the key(C:\Users\william/.ssh/id_rsa):
,我如果不Enter,设置自己自定义文件名,即使把生成的公钥添加到网页的SSH中,最后连通测试都是失败,当然更不能clone了,感觉很奇葩。
3.2 思考
- 3.2.1、为啥自己自定义的Github的密钥文件名最后连通测试就失败?
- 3.2.2、为啥Gitlab自己自定义文件名后最终文件名还是默认的
id_rsa
,奇怪!!! - 3.2.3、
.ssh
文件夹里只有config
、id_rsa
、id_rsa.pub
、known_hosts
文件,却可以承担了分别连接Github和Gitlab,确实很奇葩。你没看错,id_rsa
、id_rsa.pub
里居然仅仅都是Gitlab的密钥,Github的没了。 奇葩!!!!