1. 生成两个SSH key (以“one”和“two”两个账户为例)
ssh-keygen -t rsa -C "one@gmail.com"
ssh-keygen -t rsa -C "two@gmail.com"
不要一路回车,分别在第一个对话的时候输入重命名(id_rsa.one和id_rsa.two),这样会生成
两份包含私钥和公钥的4个文件。
注1:ssh-keygen是linux命令,可以让两个机器之间使用ssh而不需要用户名和密码
住2:一定要在~/.ssh路径下运行命令行或者重命名时输入~/.ssh/id_rsa.one和~/.ssh/id_ras.two,不然生成的文件不会出现在当前目录
2.添加私钥
1)打开ssh-agent
ssh-agent -s
2)添加私钥
ssh-add ~/.ssh/id_rsa.one
ssh-add ~/.ssh/id_rsa.two
3. 创建config文件
touch config
此时会出现空的config文件,然后添加如下内容:
# one(one@gmail.com)
Host one.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.one
User one
# two(two@gmail.com)
Host two.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.two
User two
4. 布署SSH key
分别登录两个GitHub账号,进入Personal setting -> SSH and GPG keys:
点击"new SSH key", 把下面两个公钥的内容分别添加到相应的github账号中。
5. 远程测试(可跳过)
ssh –T one.github.com
ssh –T two.github.com
注:可以忽略提示Warning: Permanently added the RSA host key for IP address 'XXX.XXX.XXX.XXX' to the list of known hosts.
one@github.com: Permission denied (publickey).
6.使用
1)clone到本地
a. 原来的写法
git clone git@github.com: one的用户名/learngit.git
b. 现在的写法
git clone git@one.github.com: one的用户名/learngit.git
git clone git@two.github.com: two的用户名/learngit.git
2) 给仓库设置局部的用户名和邮箱
git config user.name "one_name" ; git config user.email "one_email"
git config user.name "two_name" ; git config user.email "two_email"