git 多套公、私鑰的配置以及使用
git 多套公、私鑰的配置以及使用
業務使用場景
在個人的實際開發中,我們通常會碰到這樣的場景:一個人同時擁有github賬號(個人的)和公司的git賬號(公司私有倉庫),或者某個人同時擁有多個github賬號,在這種情況下,要想輕鬆簡便地使用git,那麼不可避免地要配置多套公、私鑰(ssh key),甚至可以這麼說,有幾個git的賬號,那麼不可避免地就需要多少套公、私鑰。在單獨一個賬號的情況下,我們預設都是使用id_rsa(私鑰)和id_rsa.pub(公鑰),顯然預設的只能支援一個,那如果有多個賬號了,那該怎麼辦呢?請看本文詳解
步驟
- 檢查是否已存在相應的ssh key
- 生成ssh key,並新增至 ssh-agent
- 在相應的賬號中新增生成的ssh key
- 連線測試
- FAQ
檢查是否已存在相應的ssh key
- 開啟終端
- 輸入
ls -al ~/.ssh
以我個人的為例:
可以看見,介面中列了3套ssh keys(其中一套打了馬賽克��),一套預設的,一套github的,還有打馬賽克的那一套。當然這是我安裝過後的,假如你之前都沒有安裝過,理論上是一套都沒有的,沒有也沒啥關係,我們自己生成就好了 - 核對列出來的ssh key是否有已存在的,假如你沒有看到列出的公私鑰對,或是不想再用之前的公私鑰對,你可以選擇下面的步驟生成新的公私鑰對
生成新的ssh key,並新增至ssh-agent
- 開啟終端
- 使用ssh key生成命令:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
注意:後面的郵箱對應相應賬號的郵箱,假如是github的賬號,且註冊賬號的郵箱為[email protected],則命令列為:ssh-keygen -t rsa -b 4096 -C "[email protected]
- 接下來會提示你儲存的ssh key的名稱以及路徑。預設路徑是
(/Users/you/.ssh/id_rsa)
(you為使用者個人目錄)。這一步很重要,如果你使用預設的,且下一個賬號也是使用預設的路徑和檔名,那麼之前的ssh key就會被後來生成的ssh key重寫,從而導致之前的賬號不可用。因此,正確的做法是給它命名,最吼以應用名進行命名,因為更容易區分。以下是我個人配的:/Users/hongqiangren./.ssh/github_rsa
接下來會提示設定ssh 安全密碼。這一步可以使用預設的(即不設定密碼),直接按回車即可。倘若想了解更多關於ssh key密碼設定的細節,可訪問: “Working with SSH key passphrases”
ssh key 生成後,接下來需要為ssh key 新增代理,這是為了讓請求自動對應相應的賬號。網上很多文章寫到需要另外配置config檔案,經本人親測,其實是不需要的,在生成了ssh key後,通過為生成的ssh key新增代理即可,為ssh key 新增代理命令:
ssh-add ~/.ssh/xxx_rsa
,xxx_rsa 是你生成的ssh key 的私鑰名。下圖以我自己的為例(本機為OS X系統)
在相應的賬號中新增生成的ssh key
- 登入相應的git賬號,此處以GitHub的為例,登入後點擊使用者影象,選擇:
Setting
。登入GitHub:
- 找到SSH and GPG keys,點選並新增ssh key
- 獲取生成的public key,開啟終端,使用命令列:
cat ~/.ssh/xxxx.pub
,此處以我個人的public key 為例:
- 複製該內容,並貼上至上上圖中的Key裡面。然後點選儲存
連線測試
接下來我們測試是否配置成功,開啟終端,輸入:ssh -T [email protected]
如果顯示以上資訊,那麼恭喜你,公私鑰已經成功配置! :-)
非gitHub 的專案如何配置?
對於非github型別的公、私鑰配置,其實是大同小異,因涉及到保密,我不方便講本公司的git公私鑰配置貼出來(實際上與以上大同小異)。相信聰明的小夥伴能根據以上的資訊配置自己公司的ssh key
FAQ
講道理,之所以寫這篇文章,是因為之前遇到了這個坑,在網上找的文章,發現各種抄來抄去,並沒有實際地解決問題。既然我看到沒有一篇讓我感到爽,並能實際解決問題的文章,恰巧自己又剛好解決了相關問題,那倒不如自己寫一篇。希望能幫助到某些小夥伴!