一臺(tái)電腦一般只用1個(gè)SSH Key就夠了,為什么會(huì)在一臺(tái)電腦上管理多個(gè)SSH Key?也許你會(huì)遇到和我一樣的使用場景,就是自己在家寫代碼使用github,往github上提交代碼用1個(gè)SSH Key是沒問題的,但有時(shí)候會(huì)遇到緊急情況需要處理公司的工作,為了能及時(shí)往公司用的gitlab上提交代碼,只設(shè)置1個(gè)SSH Key是不夠用的,因此為了滿足這種情況還需要增加1個(gè)SSH Key。
為了更好的說明如何在一臺(tái)電腦管理多個(gè)SSH Key,我把電腦上原有的SSH Key都先刪除了,重頭開始演示添加SSH Key的整個(gè)過程。
使用的開發(fā)環(huán)境是Windows10,整個(gè)過程分為如下幾個(gè)步驟:
1.生成第1個(gè)SSH Key
本地項(xiàng)目代碼,要提交到gitlab,把自己的代碼提交到公司的git服務(wù)器上,這一切都需要一個(gè)SSH Key。安裝好git后,右鍵Git Bash Here,輸入如下命令:
$ ssh-keygen -t rsa -C"youremail@yourcompany.com"
輸入完以上命令,然后一直按回車就行了。
這樣就能使用ssh生成第1個(gè)key了,默認(rèn)會(huì)在根目錄(windows下是:C:\Users\用戶名.ssh)下生成 id_rsa, id_rsa.pub 2個(gè)文件,即公鑰和私鑰。
2.生成第2個(gè)SSH Key
第2個(gè)key主要是為了把本地代碼提交到github上,自己平時(shí)寫的代碼都提交到github上,用來和其他人學(xué)習(xí)交流。
$ ssh-keygen -t rsa -C"youremail@xxxxx.com"
這個(gè)時(shí)候需要注意,在生成第2個(gè)Key的時(shí)候就不要一直按回車了,輸入完以上命令后要給這個(gè)文件起一個(gè)名字, 例如叫 id_rsa_github, 然后再按回車,最后在這個(gè)目錄下相應(yīng)的也會(huì)生成一個(gè) id_rsa_github.pub 文件,操作過程如下圖所示:

最后生成兩個(gè)key的結(jié)果如圖所示:

3.修改配置文件
在你的 ~/.ssh 目錄下新建一個(gè)config文件,添加如下內(nèi)容:
# gitlab
Host github.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
4.將私鑰添加到ssh-agent
首先要明白為什么做這步操作,簡單來說就是
ssh-add命令是把專用密鑰添加到ssh-agent的高速緩存中
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_github
注意:如果執(zhí)行ssh-add的時(shí)候,提示"Could not open a connection to your authentication agent",則執(zhí)行命令:
$ ssh-agent bash
然后再執(zhí)行ssh-add命令。
命令具體可參考:ssh-agent命令
5.設(shè)置SSH keys
登錄https://github.com/settings/keys,點(diǎn)擊New SSH keys,先后添加上2個(gè)SSH,這樣就可以在一臺(tái)電腦上管理2個(gè)SSH了。
6.測試連接
輸入命令:
$ ssh -T git@github.com`

如果輸出以上結(jié)果,就表示成功連上github了。
注意兩點(diǎn):
1.mac上與windows類似,最主要的是注意文件路徑。
2.一般最多管理2個(gè)SSH Key,當(dāng)然也可以管理多個(gè)。