現在大多數公司都有 GIT 來管理代碼版本控制了,既然用到 GIT,相信大家都接觸過 Github、Gitlab、Gitee 這些遠程倉庫,或者是公司內部自行搭建的 GIT 倉庫,
當用到 SSH 方式來連接 GIT 倉庫的時候,難免會同時用到多個倉庫,一般生成公私鑰的默認組態檔為:
- 私鑰:C:\Users\xxx.ssh\id_rsa
- 公鑰:C:\Users\xxx.ssh\id_rsa.pub
那么問題來了,我先生成 Github 的,再生成 GitLab 的,那么后面配置的 Gitlab 的公私鑰檔案會覆寫前面配置 Github 的,從而導致 Github 倉庫無法連接,,
這樣的配置只能同時連接一種型別的倉庫,如何在同一臺電腦做到同時連接多個不同的倉庫呢?
一、生成多個倉庫公私鑰
1、生成 Github 的:
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/github_id_rsa
2、生成 Gitlab 的:
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/gitlab_id_rsa
后面有多個倉庫都依此類推,用 -f 來指定不同的檔案名稱:xxx_id_rsa,從而區分不同的倉庫型別,而不用擔心被后面默認生成的覆寫,
二、將公鑰添加到倉庫里面
復制 xxx_id_rsa.pub 公鑰檔案里面的內容到對應倉庫里面,以下 Github 示例:

三、添加 config 配置
在 ~/.ssh 目錄下創建 config 檔案,添加以下內容:
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id_rsa
# 多個依此類推
# ...
四、測驗連通性
分別測驗多個倉庫的連通性,驗證配置是否生效,
1、測驗Github:
$ ssh -T [email protected]
2、測驗Gitlab:
$ ssh -T [email protected]
以下是 Github 連通示例:
$ ssh -T [email protected]
Enter passphrase for key '/c/Users/xxx/.ssh/github_id_rsa':
Hi javastacks! You've successfully authenticated, but GitHub does not provide shell access.
這樣配置完,我們就能愉快的使用各種不同的倉庫了~
本文原創首發于微信公眾號:Java技術堆疊(id:javastack),獲取更多 Git 神技,請在公眾號后臺回復:git,轉載請原樣保留本資訊,
關注公眾號Java技術堆疊回復"面試"獲取我整理的2020最全面試題及答案,
推薦去我的博客閱讀更多:
1.Java JVM、集合、多執行緒、新特性系列教程
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
4.Java、后端、架構、阿里巴巴等大廠最新面試題
覺得不錯,別忘了點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/103713.html
標籤:Java
上一篇:小技巧整理(一)
