git配置不同平台不同郵箱的ssh


背景:git的使用過程中 需要配置公司gitlab的ssh,也有自己的github的ssh需要。這時之前的配置ssh方式就不夠用了。

思路:為不同的郵箱賬戶生成不同的ssh密鑰對,並通過配置config文件的方式,使git可以通過配置文件,根據不同的遠程倉庫地址自動使用對應的秘鑰來完成驗證。

先完成github的ssh配置,再來完成gitlab的ssh配置,最后完成config文件配置。

步驟:github配置

1、選擇gitlab的郵箱作為全局user  和email,如下

                 git config --global user.name "你gitlab的用戶名"

      git config --global user.email "你gitlab的郵箱"

2、生成SSH Key

 ssh-keygen -t rsa -C "你的gitlab賬號對應的郵箱"

一直enter,如果已存在密鑰文件,可以覆蓋掉

3、默認生成的密鑰文件在c盤/.ssh/里,為id_rsa和id_rsa.pub,將id_rsa.pub打開(最好用notepad++),將里面的內容粘出到gitlab賬號的ssh配置里。

點擊gitlab頭像-》 settings-》SSH Keys-》Key,粘貼后,點擊Add key,如圖

 

 然后嘗試clone gitlab中的項目到本地

 

github配置

1、與gitlab基本相同,唯一需要注意的是 在生成ssh密鑰對的時候,不能一路enter,需要重命名為不同文件名,否則會覆蓋;也可以用以下命令直接指定文件名,如

ssh-keygen -t rsa -C "你的gitlab賬號對應的郵箱" -f ~/.ssh/id_rsa_github

2、同樣把后綴為.pub的秘鑰內容粘貼到 你的github賬戶對應的ssh中並生成秘鑰。

3、此時如果你嘗試clone你賬戶遠程倉庫中的項目的話,會發現連接失敗。這是因為git本身默認使用了id_rsa的秘鑰來進行ssh鏈接。

4、將密鑰添加到SSH sgent 中,為了讓SSH識別其他私鑰。

ssh-add ~/.ssh/id_rsa_github,如果失敗可以先執行以下命令
ssh-agent bash
 

配置config文件

進入.ssh目錄下,新建一個沒有后綴的文件,編輯以下內容進去

Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github Host gitlab HostName 你的gitlab項目域名 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa

配置中的配置項很重要,一定要配對。

接下來就需要進行驗證了。記得打開重連 gitbash已確保配置生效。

擴展:在處理這個問題的時候,從同事那里獲得了新思路。即使用git的相關圖形管理工具sourcetree來完成ssh的不同配置。試了下還挺方便


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM