1. 生成各自的ssh key
ssh-keygen -t rsa -C "foo@test.com" #选择key文件为~/.ssh/id_rsa_foo ssh-keygen -t rsa -C "bar@test.com" #选择key文件为~/.ssh/id_rsa_bar
2. 将这两个ssh key加入到系统中
ssh-add ~/.ssh/id_rsa_foo ssh-add ~/.ssh/id_rsa_bar ssh-add -l
3. 配置两个虚拟ssh host,分别对应每个ssh key. 这样在进行ssh登录github时,系统知道应该选择哪一个ssh key
引用
#~/.ssh/config
Host github-foo
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_foo
Host github-bar
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_bar
4. 将这两个ssh key的公钥部分分别粘贴到github的账号设定中,这样才能免密登录
请参考:
https://help.github.com/articles/generating-ssh-keys 中的Step3 . 把 ~/.ssh/id_rsa.pub 分别替换成 ~/.ssh/id_rsa_foo 和 ~/.ssh/id_rsa_bar
5. 测试登录
ssh -T github-foo #不是github.com,这里要用虚拟host ssh -T github-bar
6. Clone时选择ssh clone url,并使用虚拟host替换url中的”github.com”
git clone git@[color=red]github-foo[/color]:SomeUser1/SomeProject1.git git clone git@[color=red]github-bar[/color]:SomeUser2/SomeProject2.git
7. 修改一下你作为代码作者时的名字和email, 否则github在显示某个改动提交者的信息时可能会张冠李戴
请见 这里
8. 改个文件提交一下(commit + push),你应该不会被提示用户名、密码
注:这里介绍的处理办法不仅限于github, 它适用于任何git repository,或者github + 其他git-repository混合使用的情况,唯一不同的地方可能在于上述的第4步,你需要咨询你的git repository管理员,了解粘贴公钥的办法。