git push: permission denied (public key)

Wyguf Seak picture Wyguf Seak · Oct 29, 2013 · Viewed 138.6k times · Source

I'm trying to push a file to a git repo of a friend but errors on public key.

git push origin testbranch
Permission denied (publickey).
fatal: Could not read from remote repository.

Where and how do we define public / private keys?

git remote -v returns:

origin  [email protected]:Sesamzaad/NET.git (fetch)
origin  [email protected]:Sesamzaad/NET.git (push)

Any help is appreciated.

Answer

Seeker picture Seeker · Sep 2, 2014

I was facing same problem, here is what I did that worked for me.

Use ssh instead of http. Remove origin if its http.

git remote rm origin

Add ssh url

git remote add origin [email protected]:<username>/<repo>.git

Generate ssh key inside .ssh/ folder. It will ask for path and passphrase where you can just press enter and proceed.

cd ~/.ssh
ssh-keygen

Copy the key. You can view your key using. If you hadn't specified a different path then this is the default one.

cat ~/.ssh/id_rsa.pub

Add this key to your github account. Next do

ssh -T [email protected]

You will get a welcome message in your console.

cd into to your project folder. git push -u origin master now works!