多個github帳號的SSH key切換

2021-06-26 09:41:47 字數 2386 閱讀 2521

github使用ssh與客戶端連線。如果是單使用者(first),生成金鑰對後,將公鑰儲存至github, 每次連線時ssh客戶端傳送本地私鑰(預設~/.ssh/id_rsa)到服務端驗證。 單使用者情況下,連線的伺服器上儲存的公鑰和傳送的私鑰自然是配對的。

但是如果是多使用者(first,second),我們在連線到second的帳號時, second儲存的是自己的公鑰,但是ssh客戶端依然傳送預設私鑰,即first的私鑰, 那麼這個驗證自然無法通過。 不過,要實現多帳號下的ssh key切換在客戶端做一些配置即可。

首先cd到~/.ssh 使用ssh-keygen -t -rsa -c '[email protected]'生成新的ssh key:id_rsa_second,生成完後將新的ssh public key新增到github。

ssh-keygen -t -rsa -c '[email protected]'
預設ssh只會讀取id_rsa,所以為了讓ssh識別新的私鑰,需要將其新增到ssh agent

ssh-add ~/.ssh/id_rsa_second
該命令如果報錯:could not open a connection to your authentication agent.無法連線到ssh agent,可執行ssh-agent bash命令後再執行ssh-add命令。

完成以上步驟後在~/.ssh目錄建立config檔案,該檔案用於配置私鑰對應的伺服器。內容如下:

# default github user([email protected])

host github.com

hostname github.com

user git

identityfile c:/users/username/.ssh/id_rsa

# second user([email protected])

host github-second

hostname github.com

user git

identityfile c:/users/username/.ssh/id_rsa_second

配置完成後,在連線非預設帳號的github倉庫時,遠端庫的位址要對應地做一些修改, 比如現在新增second帳號下的乙個倉庫test,則需要這樣新增:

git remote add test git@github-second:second/test.git 

#並非原來的[email protected]:second/test.git

這樣每次連線都會使用id_rsa_second與伺服器進行連線。至此,大功告成!

注意:github根據配置檔案的user.email來獲取github帳號顯示author資訊, 所以對於多帳號使用者一定要記得將user.email改為相應的email([email protected])。

在git bash 中輸入以下**

$ ssh -t [email protected]

當你輸入以上**時,會有一段警告**,如:

the authenticity of host '

github.com (207.97.227.239)

' can'

t be established.

# rsa key fingerprint is

16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

.# are you sure you want to

continue connecting (yes/no)?

這是正常的,你輸入 yes 回車既可。如果你建立 ssh key 的時候設定了密碼,接下來就會提示你輸入密碼,如:

enter passphrase for key '

/c/users/administrator/.ssh/id_rsa

':

當然如果你密碼輸錯了,會再要求你輸入,知道對了為止。

注意:輸入密碼時如果輸錯乙個字就會不正確,使用刪除鍵是無法更正的。

密碼正確後你會看到下面這段話,如:

hi username! you'

ve successfully authenticated, but github does not

# provide shell access.

如果使用者名稱是正確的,你已經成功設定ssh金鑰。如果你看到 「access denied」 ,者表示拒絕訪問,那麼你就需要使用 https 去訪問,而不是 ssh 。

參考github幫助文件:

如何在本機配置多個github的sshkey

當我們想要在一台機器上開發多個不同的github專案時,我們就需要配置多個不同的公鑰。github站點限制了乙個ssh公鑰只能在乙個倉庫用一次,不然就會提示key is already in use。當我們在本機使用多個ssh公鑰時,又該如何管理呢?本文以我的乙個專案在ubuntu18.04上的操作...

多個github帳號的SSH key切換

1.首先cd到 ssh 使用 ssh keygen t rsa c second mail.com 生成新的ssh key id rsa second ssh keygen t rsa c second mail.com 2.預設ssh只會讀取id rsa,所以為了讓ssh識別新的私鑰,需要將其新增...

github gitlab 管理多個ssh key

以前只使用乙個 ssh key 在github上提交 由於工作原因,需要再新增乙個ssh key在公司的 gitlab上提交 下面記錄下配置過程,防止遺忘。說明下我的環境是 win7 msysgit gitbash,相信 nux bash 也是同樣的道理。第一次使用ssh生成key,缺省會在使用者 ...