大多數時候,我們的機器上會有很多的git host,比如公司gitlab、github、oschina等,那我們就需要在本地配置多個ssh key,使得不同的host能使用不同的ssh key ,做法如下(以公司gitlab和github爲例):
-
爲公司生成一對祕鑰ssh key
ssh-keygen -t rsa -C '[email protected]' -f ~/.ssh/gitlab-rsa
-
爲github生成一對祕鑰ssh key
ssh-keygen -t rsa -C '[email protected]' -f ~/.ssh/github-rsa
-
在~/.ssh目錄下新建名稱爲config的文件(無後綴名)。用於配置多個不同的host使用不同的ssh key,內容如下:
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab_id-rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id-rsa # 配置文件參數 # Host : Host可以看作是一個你要識別的模式,對識別的模式,進行配置對應的的主機名和ssh文件 # HostName : 要登錄主機的主機名 # User : 登錄名 # IdentityFile : 指明上面User對應的identityFile路徑
- 按照上面的步驟分別往gitlab和github上添加生成的公鑰gitlab_id-rsa.pub和github_id-rsa.pub
-
OK,大功告成,再次執行git命令驗證是不是已經不需要再次驗證權限了。
-
再次查看~/..ssh目錄下的文件,會有gitlab_id-rsa、gitlab_id-rsa.pub和github_id-rsa、github_id-rsa.pub四個文件