Cannot push to git repository - permission denied

家住魔仙堡 提交于 2019-11-29 19:25:50

I had the similar problem and my problem was solved by running the following command to add my key to the list of known keys:

ssh-add ~/.ssh/id_rsa

Hope it solves yours too. ;)

Sergio Belevskij

You need to do in your console (if you use an a putty ssh client):

  1. Generate the keys, if keys not exist:

    cd ~/.ssh && ssh-keygen -lf ~/.ssh/id_rsa.pub
    

Don't forget password, entered at this step!

  1. Output your public key to screen:

    cd ~/.ssh && cat id_rsa.pub
    
  2. Copy this string by click and move a mouse pointer from begin output to end. No need to press Ctrl + V or any more keys.

  3. Log in your account on GitHub and add this public key to https://github.com/settings/ssh

  4. Now you can use your git locally.

If you haven't already read it, you should look through the GitHub help page for this error:

Error: Permission denied (publickey)

Every time that I've had this problem, it was due to the last issue listed on that page: I didn't have the public key from my current workstation attached to my GitHub account. Of course, GitHub also provides instructions on how to attach your public key to your account.


tl;dr

Make sure your current public key is attached to your GitHub account.

I don't think this will solve your problem since you tested ssh -vT git@github.com directly and it worked, but you are using the ssh-agent improperly. You need to run

$ eval `ssh-agent -s`
Agent pid 767
$ ssh-add -l
The agent has no identities.

This will evaluate the environment export commands and allow your ssh-add and ssh commands to communicate with the agent. Alternatively, you can ask the agent to start a shell, terminal, etc. and it will set up the proper environment:

$ ssh-agent bash
$ ssh-add -l
The agent has no identities.

In this case, the shell is running as a child of the ssh-agent and the agent will shut down when the shell quits.

I faced the same issue on my Ubuntu and then I realize that I am on sudo mode, once I just access remote without sudo it went well.

That's how I get rid if the issue, hope it may help.

lujiwen

Permission denied (public key). I encountered this problem today, but I found a solution finally, and successfully solved my problem.

Maybe you should verify following issues:

  1. you have a github account
  2. git config your username and -mail
  3. generate a ssh-key pri/pub pair and add the public key to your git account, please check this may give you help: generating new ssh key and cannot push git repository 'permission denied'
  4. check that ssh-key is successfully added: ssh -V username@github.com
  5. good luck!

In my case I had this problem with GitLab because I was working with non-default SSH key pair paths. @NEO 's answer works perfectly:

ssh-add ~/.ssh/other_id_rsa

However, I had to do this everytime that I opened a new terminal.

To make this change permanent, you have to edit ~/.ssh/config and add the following:

Host gitlab.company.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/private-key-filename

For more detailed info check gitlab's documentation.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!