写在前面的话
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