前言
今天在用公司電腦,想著為自己的github
個人倉庫配置一下ssh key
,但是因為公司電腦已經配置了ssh key
,連線公司的gitlab
地址。所以就針對多個git
地址,如github、gitlab
,在複習了一波如何同時配置多個ssh key
,
新增單個ssh-key
以下的操作都是在
GitBash
當中進行的
生成SSH-Key
SSH 金鑰預設保留在
~/.ssh
目錄中。如果沒有~/.ssh
目錄,ssh-keygen
命令會使用正確的許可權建立一個。
ssh-keygen -t ed25519 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
ssh-keygen -o -t rsa -b 4096 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
複製程式碼
-t 指定要建立的金鑰型別。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2) ;可以不新增預設指定的是rsa
-b 指定金鑰長度。對於RSA金鑰,最小要求768位,預設是2048位。DSA金鑰必須恰好是1024位(FIPS 186-2 標準的要求)
-C 提供一個新註釋 這裡需要填寫你註冊的github 或者 gitlab 郵箱號
-f 指定金鑰檔名。 當你不填寫檔名的時候 則預設為 id_rsa
輸入上面的命令則會為你生成一個金鑰,金鑰生成的目錄是在使用者下面的.ssh檔案裡面,其中id_rsa.pub
為公鑰,id_rsa
為私鑰
新增ssh-key
-
命令列復制
cat ~/.ssh/ssh檔名 | clip
-
編輯工具直接開啟
.pub
檔案複製 -
到相應的平臺的
SSH-Key
當中新增金鑰 -
以
github
為例子
測試一下
ssh -T git@github.com
複製程式碼
輸入上述命令,若出現以下所示,則表示成功了,需要注意一下的是,當你配的是gitlab
金鑰的時候,則需要在git@
後面輸入Gitlab
所在ip地址
或域名
,才能正確測試。
多金鑰配置
多金鑰配置的時候,則需要在生成金鑰的時候,配置不同的檔名去區分,例如
ssh-keygen -t ed25519 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa_1
ssh-keygen -t ed25519 -C "email@example.com" -f ~/.ssh/github_id_rsa_2
複製程式碼
然後在./ssh/
資料夾下手動config
檔案,配置金鑰資訊。不進行config
的配置的話,會導致連線GitHub時還會使用預設的金鑰,導致拒絕連線
config配置
# gitlab
Host gitlab.com
HostName gitlab.com
User root
IdentityFile ~/.ssh/id_rsa
# github
Host github.com
HostName github.com
User root
IdentityFile ~/.ssh/id_rsa_github
Host 代表 關鍵詞
HostName 代表 主機地址
User 代表 使用者名稱
IdentityFile 代表 認證檔案
複製程式碼
錯誤提示
進行測試的時候可能會出現以下錯誤
那麼連線的時候指定自己重新命名的私鑰名就好了
ssh -T -i git_test git@github.com
複製程式碼