如何一臺機器同時使用多個git祕鑰

銳玩道發表於2021-05-25

如果❤️我的文章有幫助,歡迎點贊、關注。這是對我繼續技術創作最大的鼓勵。

起因

公司一個 gitlab 程式碼倉庫;個人一個 github 程式碼倉庫;

然後最近 github 本來就慢,被河蟹之後丟包更嚴重了。所以為了不影響使用,又加了個國內碼雲 gitee

正巧重新配了下 倉庫祕鑰,做個記錄方便之後換機器、重置系統再用。

生成祕鑰

為了方便說明,我假設需要重新配置全部祕鑰。如果機器上已經配置好其它祕鑰,直接生成新的祕鑰(注意不要覆蓋 已經生成好 的祕鑰)

使用終端 ssh命令 生成 rsa祕鑰

ssh-keygen -t rsa -C "郵箱地址1" -f ~/.ssh/id_rsa_github

-f 為祕鑰存放地址。預設為當前路徑 。一直回車下去,過程如下:

QQ截圖20210524214918.png

此時~/.ssh目錄下會生成2個檔案,分別對應 公鑰id_rsa_github.pub 和 私鑰id_rsa_github

將公鑰告訴git伺服器

開啟公鑰檔案,複製裡面內容。

vim id_rsa_github.pub

登陸 git伺服器 (這裡以github舉例)。 github賬戶 > setting選項 > SSH and GPG keys,把 公鑰字串 貼上裡面的key輸入框中,儲存退出即可。

QQ截圖20210524215702.png

通過命令 ssh -T git@github.com 測試,

QQ截圖20210524215917.png 如果出現上圖提示,說明祕鑰新增成功。

配置多個祕鑰

我們重複步驟 生成祕鑰將公鑰告訴git伺服器 生成並配置新的祕鑰後。 在 .ssh 目錄下面新建 config檔案,檔案內容如下: 配置以下內容:

Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    user coderdao

Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_gitee
    user coderdao
複製程式碼

HostName 指定祕鑰使用域名,就能區分不同域名之間使用祕鑰不同

儲存後,測試 ssh -T git@github.comssh -T git@gitee.com

QQ截圖20210524220724.png 上圖所示,即配置多個git祕鑰配置成功

其他問題

如果配置 config 檔案後,未能生效。本地 git 軟體的配置存在快取,可使用以下命令判斷祕鑰是否生效:

QQ截圖20210524221347.png

$ cd ~/.ssh

$ eval $(ssh-agent)
Agent pid 3593

$ exec ssh-agent bash

$ ssh-add ~/.ssh/id_rsa_github
Identity added: /c/Users/Administrator/.ssh/id_rsa_github

$ ssh -T git@github.com
Hi coderdao! You've successfully authenticated, but GitHub does not provide shell access.

複製程式碼

相關文章