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  git@github.com:user2/z.git (fetch)
origin  git@github.com: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 ... - 簡書
Quick Tip: How to Work with GitHub and Multiple Accounts
git - Using Multiple SSH Public Keys - Super User
Error: Permission to user/repo denied to user/other-repo - User Documentation

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM