同一客户端多个git帐号的配置

步骤一:用ssh-keygen命令生成一组新的id_rsa_new和id_rsa_new.pub。 git

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


平时咱们都是直接回车,默认生成id_rsa和id_rsa.pub。这里特别须要注意,出现提示输入文件名的时候要输入与默认配置不同的文件名,好比:  id_rsa_new。

步骤二:配置~/.ssh/config文件,以我本身的机器为例。 shell

#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链接去读取哪一个私钥。 bash

步骤三:执行ssh-agent让ssh识别新的私钥。 ssh

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。 spa

同时,你能够经过在特定的repo下执行下面的命令,生成区别于全局设置的user.name和user.email。 code

git config user.name "newname"
git config user.email "newemail"

#git config --global --unset user.name 取消全局设置
#git config --global --unset user.email 取消全局设置


例子:
#在同一机器不一样目录下克隆远程同一个repo
cd /home/user1
git clone git@defaultgit:xxx.git

cd /home/user2
git clone git@secondgit:xxx.git
上面的两条clone命令,虽然关联到同一个repo,倒是经过不一样ssh链接,固然也是不一样的git帐号。
相关文章
相关标签/搜索