github多账户ssh-key配置

假设user1的邮箱为[email protected],user2的邮箱为[email protected]

1.首先进入用户主目录下的.ssh文件夹 ,把生成的密钥对放在这儿。

$ cd ~/.ssh  

2.分别为user1和user2生成密钥对:

默认三次回车产生的key名字为 id_rsa,在生成第二个密钥时要注意,给其起个别名id_rsa_user2,如下列代码所示。

$ ssh-keygen -t rsa -C "[email protected]"
$ ssh-keygen -t rsa -C "[email protected]"
# 设置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_rsaid_rsa_user2,分别添加其公钥到user1和user2的GitHub账户的SSH KEYS中。

3.添加keyssh 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 [email protected]: user1/仓库名.git
$ #user2的操作
$ git remote add origin [email protected]: user2/仓库名.git

5.设置局部的用户名和邮箱,若之前进行全局设置过的话,要unset一下,并且在add origin之后再局部的设置用户名和邮箱。

# 先重置下全局的用户名和邮箱
$ git config --global --unset user.name
$ git config --global --unset user.email
# 1.git remote add origin [email protected]: user1/仓库名.git之后
$ git config user.name "user1"
$ git confog user.eamil "[email protected]"
# 2.git remote add origin [email protected]: user2/仓库名.git之后
$ git config user.name "user2"
$ git confog user.eamil "[email protected]"

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.

github多账户ssh-key配置_第1张图片

你可能感兴趣的:(git,ssh,github,git)