如果❤️我的文章有幫助,歡迎點贊、關注。這是對我繼續技術創作最大的鼓勵。
起因
公司一個 gitlab 程式碼倉庫;個人一個 github 程式碼倉庫;
然後最近 github 本來就慢,被河蟹
之後丟包更嚴重了。所以為了不影響使用,又加了個國內碼雲 gitee
;
正巧重新配了下 倉庫祕鑰,做個記錄方便之後換機器、重置系統再用。
生成祕鑰
為了方便說明,我假設需要重新配置全部祕鑰。如果機器上已經配置好其它祕鑰,直接生成新的祕鑰(注意不要覆蓋
已經生成好
的祕鑰)
使用終端 ssh命令 生成 rsa祕鑰
ssh-keygen -t rsa -C "郵箱地址1" -f ~/.ssh/id_rsa_github
-f 為祕鑰存放地址。預設為當前路徑
。一直回車下去,過程如下:
此時~/.ssh
目錄下會生成2個檔案,分別對應 公鑰id_rsa_github.pub
和 私鑰id_rsa_github
。
將公鑰告訴git伺服器
開啟公鑰檔案,複製裡面內容。
vim id_rsa_github.pub
登陸 git伺服器
(這裡以github舉例)。 github賬戶 > setting選項 > SSH and GPG keys,把 公鑰字串
貼上裡面的key輸入框中,儲存退出即可。
通過命令 ssh -T git@github.com
測試,
如果出現上圖提示,說明祕鑰新增成功。
配置多個祕鑰
我們重複步驟 生成祕鑰
、將公鑰告訴git伺服器
生成並配置新的祕鑰後。
在 .ssh
目錄下面新建 config檔案
,檔案內容如下:
配置以下內容:
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
user coderdao
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
user coderdao
複製程式碼
HostName 指定祕鑰使用域名,就能區分不同域名之間使用祕鑰不同
儲存後,測試 ssh -T git@github.com
、ssh -T git@gitee.com
上圖所示,即配置多個git祕鑰配置成功
其他問題
如果配置 config
檔案後,未能生效。本地 git
軟體的配置存在快取,可使用以下命令判斷祕鑰是否生效:
$ 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.
複製程式碼