github多用户提交错误Permission to repo denied to

 

背景:同一台电脑的public key同时添加到了github的两个账户,导致user1的仓库没法正常提交。

解决办法:为两个账户分别配置ssh key,配置~/.ssh/config文件(windows下也是这个路径,在git bash中可以识别~)

错误:

$ git push
remote: Permission to user1/python.git denied to user2.
fatal: unable to access 'https://github.com/user1/python.git/': The requested URL returned error: 403

解决:

环境:windows 7+ git bash

1、在github上删除两个账户的ssh key

2、生成两个ssh key

切换到ssh key的目录

$ cd ~/.ssh/

只需要修改文件名为user1_rsa, passphrase留空回车即可。

复制代码

$ ssh-keygen -t rsa -C "user1"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/waston/.ssh/id_rsa): user1_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in user1_rsa.
Your public key has been saved in user1_rsa.pub.
The key fingerprint is:
SHA256:BJ5FGpGBCwM+Vw9769IACYHKoWD8gJURyYuSNOJQjUY user1
The key's randomart image is:
+---[RSA 2048]----+
|=OEB +==o        |
|BBX =.=*         |
|@*=B o+o.        |
|*o+.o ...        |
|.    . .S        |
|      +          |
|     . o         |
|      .          |
|                 |
+----[SHA256]-----+

复制代码

同样方式生成user2_rsa

3、把user1_rsa_pub的内容上传到github后台, user2同样操作

https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

4、修改~/.ssh/config文件内容为:

复制代码

#Default GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/user1_rsa
  IdentitiesOnly yes
 
Host github2
  HostName github.com
  User git
  IdentityFile ~/.ssh/user2_rsa
  IdentitiesOnly yes 

复制代码

5、添加你的ssh密钥到ssh-agent中

$ eval "$(ssh-agent -s)"

Agent pid 40672

$ ssh-add ~/.ssh/user1_rsa

Identity added: /c/Users/waston/.ssh/user1_rsa (/c/Users/waston/.ssh/user1_rsa)

$ ssh-add ~/.ssh/user2_rsa

Identity added: /c/Users/waston/.ssh/user2_rsa (/c/Users/waston/.ssh/user2_rsa)

6、测试

user1仓库测试:

复制代码

cat@cat-pc MINGW64 /f/github/python (master)
$ ssh -T github.com
Hi user1! You've successfully authenticated, but GitHub does not provide shell access.
cat@cat-pc MINGW64 /f/github/python (master)
$ git push
Everything up-to-date

复制代码

user2仓库测试:

复制代码

$ ssh -T github2
Hi user2! You've successfully authenticated, but GitHub does not provide shell access.
cat@cat-pc MINGW64 /h/z8 (master)
$ git remote -v
origin  [email protected]:user2/z.git (fetch)
origin  [email protected]:user2/z.git (push)
cat@cat-pc MINGW64 /h/z8 (master)
$ git remote set-url origin git@github2:user2/z.git
cat@cat-pc MINGW64 /h/z8 (master)
$ git push
Everything up-to-date

复制代码

其它:

#提示文件不存在,检查下rsa文件名或者重新生成key

$ ssh -T github2

no such identity: /c/Users/waston/.ssh/user2_rsa: No such file or directory

Permission denied (publickey).

参考:

Git 最著名报错 “ERROR: Permission to XXX.git denied ... - 简书

http://www.jianshu.com/p/12badb7e6c10

Quick Tip: How to Work with GitHub and Multiple Accounts

https://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574

git - Using Multiple SSH Public Keys - Super User

https://superuser.com/questions/272465/using-multiple-ssh-public-keys

Error: Permission to user/repo denied to user/other-repo - User Documentation

https://help.github.com/articles/error-permission-to-user-repo-denied-to-user-other-repo/

发布了79 篇原创文章 · 获赞 9 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/LeeCSDN77/article/details/89455669