这是我遇到的问题。
首先,我正在开展几个不同的项目。 我有两个不同的github帐户,在设置其中一个并成功推送回购后,我需要提交/推送其他回购到第二个帐户,这让我遇到了确切的问题。
如何使用https方式而不是ssh在这两个帐户之间切换?
P.S:我在Mac上。我试图更改git config全局/本地用户名和电子邮件,但它没有成功。我一直得到同样的错误:
“remote:对用户拒绝命名/ repo.git的权限。 致命:无法访问'repos address':请求的URL返回错误:403“。
答案 0 :(得分:8)
您需要使用不同的ssh密钥。
阅读完整文档并按照步骤操作。
https://gist.github.com/jexchan/2351996
create different public key
强> 根据文章Mac Set-Up Git创建不同的ssh密钥
$ ssh-keygen -t rsa -C "your_email@youremail.com"
例如,创建了2个键:
~/.ssh/id_rsa_activehacker
~/.ssh/id_rsa_jexchan
Add these two keys to the ssh-agent:
强> $ ssh-add ~/.ssh/id_rsa_activehacker
$ ssh-add ~/.ssh/id_rsa_jexchan
you can delete all cached keys before
$ ssh-add -D
check your keys
强> $ ssh-add -l
Modify the ssh config
强> $ cd ~/.ssh/
$ touch config
$ subl -a config
Add the keys to the config file:
*** #activehacker account
Host github.com-activehacker
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_activehacker
#jexchan account
Host github.com-jexchan
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_jexchan
Clone you repo and modify your Git config
强> # clone your repo
git clone git@github.com:activehacker/gfs.git gfs_jexchan
cd gfs_jexchan and modify git config
$ git config user.name "jexchan"
$ git config user.email "jexchan@gmail.com"
$ git config user.name "activehacker"
$ git config user.email "jexlab@gmail.com"
# or you can have global
git config $ git config --global user.name "jexchan"
git config --global user.email "jexchan@gmail.com"
push your code
强> # add the code and commit it
git add .
git commit -m "your comments"
# push the code to the remote server
git push
答案 1 :(得分:1)
我们还需要将ssh密钥添加到相应的帐户,否则身份验证将失败。