mackxu
子曰:学而时习之,不亦说乎?

写在前面的话

github账号,工作有一个,自己有一个。但是默认下使用ssh key在git push时只有默认账号能免输入账号和密码。

如果想让另一个账号在代码push时免账号和密码,请看这篇文章http://omiga.org/blog/archives/2269。

如果你建立并配置了.ssh/config文件后,但却不知道怎么使用。这篇文章是为你准备的。

Host me.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/me_rsa

Host work.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/work_rsa

多个github帐号的SSH key切换

在切换之前请确保配置是正确的。

$ ssh -T git@github.com
Hi stefano! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@work.github.com
Hi stefano! You've successfully authenticated, but GitHub does not provide shell access.

 

-T 参数是什么意思,在下并不知道。如有大牛不幸看到此段,请不吝赐教。

现在就各种情况给出不同的做法:

1. 仓库已经在本地了(本地创建或者已经clone到本地)

因为是默认用户登录,如果push代码会被拒绝。解决办法:在当前的仓库目录下

vi .git/config

#更改[remote "origin"]项中的url中的
#work.github.com 对应上面配置的host
url = git@work.github.com:username/repo.git

 

2. 要clone任意配置的host对应的账户下的仓库

#me.github.com对应一个账号
git clone git@me.github.com:username/repo.git

http://stackoverflow.com/questions/3225862/multiple-github-accounts-ssh-config

http://omiga.org/blog/archives/2269

https://help.github.com/articles/generating-ssh-keys

http://blog.csdn.net/npjocj/article/details/16826119

posted on 2013-11-23 18:45  mackxu  阅读(4420)  评论(0编辑  收藏  举报