一台电脑使用多个github账号时如何免密登录

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管理员,了解粘贴公钥的办法。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.