Git's famous “ERROR: Permission to .git denied to user”

I have tried googling and read through http://help.github.com/troubleshooting-ssh/ and various, various guides. I am unable to git push -u origin master or git push origin master ( the same command ).

I’ve had my git account for at least 2 or so years. I’ve successfully been able to create repos and push -u origin master fine on my laptop but on this desktop I’m having issues.

Here’s what I tried:

1. I have setup my git user name

2. I have setup my git user email

3. I have uploaded the contents of my /home/meder/.ssh/id_rsa.pub to github’s account page. I have verified I did not paste any whitespace

4. I have created a ~/.ssh/config with these contents:

  Host github.com
  User git
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa

I have chmodded the .ssh to 700, id_rsa 600

5. I have added the proper remote origin without making typos : git remote add origin git@github.com:medero/cho.git

6. To confirm #5, here is my .git/config. The directory is correct and not another directory:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:medero/cho.git

7. ssh git@github.com -v gives me a successful Authentication

8. One weird thing is, the username which it greets me with has t appended to it. My github username is medero, not medert.

Hi mederot! You’ve successfully
authenticated, but GitHub does not
provide shell access.

9. I am not behind a proxy or firewall

10. The key is offered, heres the output from -v:

debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/meder/.ssh/known_hosts:58
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/meder/.ssh/id_rsa
debug1: Remote: Forced command: gerve mederot
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: { some stuff, dont know if i should share it

debug1: Remote: Forced command: gerve mederot
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).

11. Here are the commands I used

mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin git@github.com:medero/cho.git
git push -u origin master

12. I don’t want to create a new SSH key.

13. If I git clone using ssh and make an edit, commit, and git push, I get the same exact thing.

14. Here’s the actual error:

$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly

15. I have setup my github username and github token:

$ git config –global github.user medero
$ git config –global github.token 0123456789yourf0123456789tokenSets the GitHub token for all git instances on the system

16. I have confirmed my github username is NOT mederot and my github token IS CORRECT per my account page ( validated first 2 chars and last 2 chars ).

17. To confirm #16, ~/.gitconfig contains

[github]
    token = mytoken...
    user = medero

18. I did ssh-key add ~/.ssh/id_rsa if that’s even necessary…

THEORIES:

I suspect there’s something fishy because when I get ssh authenticated, the user greeting is mederot and not medero, which is my acct. Could something in my github account possibly be incorrectly cached?

I also suspect some local ssh caching weirdness because if i mv ~/.ssh/id_rsa KAKA and mv ~/.ssh/id_rsa.pub POOPOO, and do ssh git@github.com -v, it still Authenticates me and says it serves my /home/meder/.ssh/id_rsa when I renamed it?! It has to be cached?!

  • git clone ends with Broken Pipe
  • Can not push commits to GitHub
  • SSH frozen at “SSH2_MSG_SERVICE_ACCEPT”
  • ssh authenticated git access at windows command prompt?
  • Windows PuTTY - git error - No supported authentication methods
  • 500 Internal Server Error When Cloning Git Repo On LAMP CentOS VPS
  • git clone results in: “fatal: The remote end hung up unexpectedly”
  • How can I access one Git repo from two machines?
  • 8 Solutions collect form web for “Git's famous “ERROR: Permission to .git denied to user””

    In step 18, I assume you mean ssh-add ~/.ssh/id_rsa? If so, that explains this:

    I also suspect some local ssh caching weirdness because if i mv ~/.ssh/id_rsa KAKA and mv ~/.ssh/id_rsa.pub POOPOO, and do ssh git@github.com -v, it still Authenticates me and says it serves my /home/meder/.ssh/id_rsa when I renamed it?! It has to be cached?!

    … since the ssh-agent is caching your key.

    If you look on GitHub, there is a mederot account. Are you sure that this is nothing to do with you? GitHub shouldn’t allow the same SSH public key to be added to two accounts, since when you are using the git@github.com:... URLs it’s identifying the user based on the SSH key. (That this shouldn’t be allowed is confirmed here.)

    So, I suspect (in decreasing order of likelihood) that one of the following is the case:

    1. You created the mederot account previously and added your SSH key to it.
    2. Someone else has obtained a copy of your public key and added it to the mederot GitHub account.
    3. There’s a horrible bug in GitHub.

    If 1 isn’t the case then I would report this to GitHub, so they can check about 2 or 3.

    More :

    ssh-add -l check if there is more than one identify exists
    if yes, remove it by ssh-add -d “that key file”

    After Googling for few days, i found this is the only one question are similar to my situations.

    Someday i just solved the problem!

    I think i have to write down my answer here to help the incoming searches.

    Here is what i did:

    1. Open “Keychain Access.app” (You can find it in Spotlight or LaunchPad)

    2. Select “All items” in Category

    3. Search “git”

    4. Delete every old & strange items

    5. Try to Push again and it just WORKED

    If problem is coming on windows then remove the Credentials from the Windows history.

    • Go to Credential Manager
    • Go to Windows Credentials
    • Delete the entries under Generic Credentials
    • Try connecting again.This time , it should prompt you for the correct username and password.

    enter image description here
    enter image description here

    remove credentials from git

    Its due to a conflict.

    Clear all keys from ssh-agent

    ssh-add -d ~/.ssh/id_rsa
    ssh-add -d ~/.ssh/github
    

    Add the github ssh key

    ssh-add   ~/.ssh/github
    

    It should work now.

    I am using Mac and the issue is solved by deleting github record from keychain access app:
    Here is what i did:

    1. Open “Keychain Access.app” (You can find it in Spotlight orLaunchPad)
    2. Select “All items” in Category
    3. Search “git”
    4. Delete every old & strange items Try to Push again and it just WORKED

    Above steps are copied from @spyar for the ease.

    I find the solution is the same as @spyar provide which is the Keychain Access app stored the old username.

    There are 2 solutions for this situation:

    1. Delete the info in Keychain Access by
      • Open Keychain Access app
      • Search for github
      • Delete corresponding credentials

    Or

    1. If you use want to use ssh key. You just change your Repo url from https

    https://github.com/username/repo.git

    into

    git@github.com:username/repo.git

    Hope this helps.

    I had the same problem as you. After a long time spent Googling, I found out my error was caused by multiple users that had added the same key in their accounts.

    So, here is my solution: delete the wrong-user’s ssh-key (I can do it because the wrong-user is also my account). If the wrong-user isn’t your account, you may need to change your ssh-key, but I don’t think this gonna happen.

    And I think your problem may be caused by a mistyping error in your accounts name.

    This problem is also caused by:

    If you are on a mac/linux, and are using ‘ControlMaster’ in your ~/.ssh/config, there may be some ssh control master processes running.

    To find them, run:

    ps aux | grep '\[mux\]'
    

    And kill the relevant ones.

    Git Baby is a git and github fan, let's start git clone.