前言
本來電腦本地只存在一個git賬號,用於提交項目代碼。近期重新搭建了博客,站點託管在github上。在gitee上又新建了一個倉庫,用來備份博客。首次提交到github或者gitee上,會提示輸入密碼,再次提交,可能不再提示密碼,當你做push操作時,會提示你沒有權限,因爲git無法區分到底是用哪個賬號進行操作。
如果能夠通過一個文件來管理多個賬號,並且根據不同的倉庫來自動選擇不同的賬號來執行git操作,那將會是一件多麼愉快的事。下面我們就來完成這件愉快的事。
配置SSH密鑰
這裏涉及到三個git賬號,公司git賬號:company_account,博客站點git賬號:website_account,博客備份git賬號:blog_account
1.分別生成company_account,website_account,blog_account對應的rsa和rsa.pub文件
ssh-keygen -t rsa -C "company_account"
默認會放在/Users/UserName/.ssh路徑下,默認文件名爲id_rsa,爲了區分,改文件名爲company_id_rsa。回車後,會提示設置密碼。
同樣生成website_account和blog_account,分別改文件名爲website_id_rsa和blog_id_rsa,操作完後,在.ssh文件夾中會有這樣6個文件 company_id_rsa company_id_rsa.pub, website_id_rsa website_id_rsa.pub, blog_id_rsa blog_id_rsa.pub
2.分別把company_id_rsa.pub,website_id_rsa.pub,blog_id_rsa.pub裏的內容複製到公司、github、gitee的ssh裏面
配置config文件
-
vim ~/.ssh/config
-
複製代碼
參考如下:
#compay
Host xxxxx.com
HostName xxxxx.com
User compay_account
IdentityFile ~/.ssh/company_id_rsa
#website
Host github.com
HostName github.com
User website_account
IdentityFile ~/.ssh/website_id_rsa
#blog
Host gitee.com
HostName gitee.com
User blog_account
IdentityFile ~/.ssh/blog_id_rsa
Host: 服務器 HostName: 主機名或域名,建議使用域名 User: 用戶名或者郵箱 IdentityFile: rsa文件路徑
後續使用git,會通過config文件來自動選擇賬號。