親測本地電腦同時配置gitee和github賬號,實現ssh免密拉取和提交代碼

問題
本地已配置了githup ssh,如何配置gitee支持ssh拉取源碼?

思路
ssh 方式鏈接到 Github/GitLab,需要唯一的公鑰,如果想同一臺電腦綁定兩個Github/GitLab 帳號,需要兩個條件:
1.能夠生成兩對 私鑰/公鑰
2.push 時,可以區分兩個賬戶,推送到相應的倉庫

解決方案
1.生成 私鑰/公鑰 時,密鑰文件命名避免重複
2.設置不同 Host 對應同一 HostName 但密鑰不同
3.取消 git 全局用戶名/郵箱設置,爲每個倉庫獨立設置 用戶名/郵箱

解決步驟
1.查看已有githup配置

ls ~/.ssh

2.生成新公鑰

ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitee -C "your [email protected]"

在這裏插入圖片描述

3.複製id_rsa_gitee.pub的公鑰到遠程ssh配置處(省略)
4.配置config文件。在 .ssh 文件夾下新建 config文件並編輯,使不同 Host 實際映射到同一HostName,但密鑰文件不同。

# default                                                                       
Host github.com
HostName github.com
User songyp
IdentityFile ~/.ssh/id_rsa
# two                                                                           
Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_gitee

5.測試 ssh 鏈接

ssh -T [email protected]
ssh -T [email protected]
# Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
# 出現上邊這句,表示鏈接成功

在這裏插入圖片描述

6.取消全局 用戶名/郵箱設置,並進入項目文件夾單獨設置。git config命令要到工程目錄下執行。
電腦平時使用githup比較多,可以把githup的賬戶設置爲全局,然後在單獨的需要用別的賬號的工程下配置對應的賬號。
這樣就不用頻繁地做這個配置。

# 取消全局 用戶名/郵箱 配置
git config –global –unset user.name
git config –global –unset user.email
# 單獨設置每個repo 用戶名/郵箱
git config user.email “[email protected]”
git config user.name “xxxx”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章