因為實際開發需要,公司使用的是Gitlab,我自己私下用的是Github,我想在公司電腦上同時配置上這兩個。
網上有諸多教程針對這個配置,我開始也是照此教程進行操作,但是都失敗了。最終自己根據自己操作居然成功了。實現了Github和Gitlab的共存。
1、配置好自己的Github
- 1.1、在自己
C:Userswilliam
資料夾下,通過命令列工具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:Userswilliam/.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的沒了。 奇葩!!!!