使用git,若是同時使用多個git託管網站,如gitlab和github,ssh key不一致,該如何切換呢?只有一個key時到沒有問題,生成的默認key是~/.ssh/id_rsa,在windows os目錄是C:\Users\Administrator\.ssh,直接用就是了。解決方案是配置~/.ssh/config文件。實驗以下:git
生成第一個keygithub
$ ssh-keygen -t rsa -C "your_email@youremail.com"
最後在~/.ssh下生成2個文件,一個是公鑰,一個是私鑰web
生成第二個key(假如郵箱是mail@xxx.com)::shell
$ ssh-keygen -t rsa -C "mail@xxx.com"
這時注意要給第二個key起個名字:windows
須要將新密鑰添加到SSH agent中:bash
由於默認只讀取id_rsa,爲了讓SSH識別新的私鑰,需將其添加到SSH agent中:ssh
ssh-add ~/.ssh/other
若是出現Could not open a connection to your authentication agent的錯誤,就試着用如下命令:gitlab
ssh-agent bash ssh-add ~/.ssh/other
若是使用的是windows os,能夠在C:\Users\Administrator目錄下找到other和other.pub文件,將它們放到~/.ssh目錄下。網站
配置config文件以下:spa
Host gitlab.gitlab.com HostName gitlab.com port 22 User git IdentityFile ~/.ssh/id_rsa Host other.github.com HostName github.com port 22 User git IdentityFile ~/.ssh/other
執行如下命令:
提示You've successfully authenticated 就說明鏈接成功了
使用
clone,將Host換成config文件裏的對應Host:
$git clone git@other.github.com:username/repo.git
修改remote:
$ git remote rm origin $ git remote add origin@other.github.com:username/repo.git