1. 程式人生 > >同一客戶端多個git賬號的配置

同一客戶端多個git賬號的配置

文件中 文件 address 如果 pan then add 設置 family

同一客戶端多個git賬號的配置

同一客戶端多個git賬號的配置

步驟一:用ssh-keygen命令生成一組新的id_rsa_new和id_rsa_new.pub。

1 ssh-keygen -t rsa -C "new email"

平時我們都是直接回車,默認生成id_rsa和id_rsa.pub。這裏特別需要註意,出現提示輸入文件名的時候要輸入與默認配置不一樣的文件名,比如: id_rsa_new。

步驟二:配置~/.ssh/config文件,以我自己的機器為例。

1 2 3 4 5 6 7 8 9 10 11 #Default Git
Host defaultgit HostName IP Address #域名也可 User think IdentityFile ~/.ssh/id_rsa #Second Git Host secondgit HostName IP Address #域名也可 User think IdentityFile ~/.ssh/id_rsa_second

Host就是每個SSH連接的單獨代號,IdentityFile告訴SSH連接去讀取哪個私鑰。

步驟三:執行ssh-agent讓ssh識別新的私鑰。

1 ssh-add ~/.ssh
/id_rsa_new

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

以後,在clone或者add remote的時候,需要把config文件中的host代替git@remoteaddress中的remoteaddress。

同時,你可以通過在特定的repo下執行下面的命令,生成區別於全局設置的user.name和user.email。

1 2 3 4 5 git config user.name
"newname" git config user.email "newemail" #git config --global --unset user.name 取消全局設置 #git config --global --unset user.email 取消全局設置

例子:
1 2 3 4 5 6 #在同一機器不同目錄下克隆遠程同一個repo cd /home/user1 git clone git@defaultgit:xxx.git cd /home/user2 git clone git@secondgit:xxx.git
上面的兩條clone命令,雖然關聯到同一個repo,卻是通過不同ssh連接,當然也是不同的git賬號。

來源: <http://my.oschina.net/csensix/blog/184434>

同一客戶端多個git賬號的配置