假设user1的邮箱为user1@qq.com,user2的邮箱为user2@qq.com
1.首先进入用户主目录下的.ssh文件夹 ,把生成的密钥对放在这儿。
$ cd ~/.ssh
2.分别为user1和user2生成密钥对:
默认三次回车产生的key名字为 id_rsa,在生成第二个密钥时要注意,给其起个别名id_rsa_user2,如下列代码所示。
$ ssh-keygen -t rsa -C "user1@qq.com"
$ ssh-keygen -t rsa -C "user2@qq.com"
# 设置user2的密钥对名字为 id_rsa_user2
Enter file in which to save the key (/c/Users/lenovo/.ssh/id_rsa): c/Users/lenovo/.ssh/id_rsa_user2
此时 .ssh文件夹中就存在两个密钥对文件,id_rsa和id_rsa_user2,分别添加其公钥到user1和user2的GitHub账户的SSH KEYS中。
3.添加key到ssh agent中
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_user2
成功会显示:
Identity added: /c/Users/Windows用户名/.ssh/key名 (/c/Users/Windows用户名/.ssh/key名)
注意:ssh-add 这个命令不是用来永久性的记住你所使用的私钥的。实际上,它的作用只是把你指定的私钥添加到 ssh-agent 所管理的一个 session 当中。而 ssh-agent 是一个用于存储私钥的临时性的 session 服务,也就是说当你重启之后, ssh-agent服务也就重置了。
4.创建config文件使配置永久生效:
在 ./ssh 目录下新建 config 文件,无后缀名,在 git bash 下可直接 touch config ,编辑如下内容:
Host user1.com
HostName user1.com
User git
IdentityFile ~/.ssh/id_rsa
Host user2.com
HostName user2.com
User git
IdentityFile ~/.ssh/id_rsa_user2
今后对github的操作就写完
$ git remote add origin git@Host:用户名/仓库名.git
$ #user1的操作
$ git remote add origin git@user1.com: user1/仓库名.git
$ #user2的操作
$ git remote add origin git@user2.com: user2/仓库名.git
5.设置局部的用户名和邮箱,若之前进行全局设置过的话,要unset一下,并且在add origin之后再局部的设置用户名和邮箱。
# 先重置下全局的用户名和邮箱
$ git config --global --unset user.name
$ git config --global --unset user.email
# 1.git remote add origin git@user1.com: user1/仓库名.git之后
$ git config user.name "user1"
$ git confog user.eamil "user1.@qq.com"
# 2.git remote add origin git@user2.com: user2/仓库名.git之后
$ git config user.name "user2"
$ git confog user.eamil "user2.@qq.com"
6.测试是否成功
# ssh -T git@Host(config中设置的Host)
$ ssh -T git$user1.com
# 输出:Hi user1! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -T git$user2.com
# 输出:Hi user2! You've successfully authenticated, but GitHub does not provide shell access.