git多帳號切換

使用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
相關文章
相關標籤/搜索