Git配置單個或多個SSH

胡蘿蔔菜發表於2021-07-24

前言

今天在用公司電腦,想著為自己的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

  1. 命令列復制 cat ~/.ssh/ssh檔名 | clip

  2. 編輯工具直接開啟 .pub檔案複製

  3. 到相應的平臺的SSH-Key當中新增金鑰

  4. 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
複製程式碼

相關文章