git push origin master: permission denied (public key) error
Solution 1
One step you seem to have missed (or didn't include in your description) is the publication of the public key on the server side.
Upload your public ssh key and add it to the ~username/.ssh/authorized_keys
file.
Also, try it (for testing) first with a private key without passphrase (no need to ssh-add your key to an ssh agent)
Finally, make sure your ssh keys are with standards names (id_rsa
and id_rsa.pub
), with the right protection:
- on the local side
- in the remote side
Finally, an ssh -Tvvv [email protected]
should tell you more, if the previous steps didn't solve the issue.
Solution 2
The complete procedure being:
-
Add the EC2 public key to your ssh list with the following command
ssh-add /path/to/myEC2publickey
-
Create a git repository on the EC2 instance with the following commands
mkdir /path/my_project.git cd /path/my_project.git git init --bare
-
Connect the local files on your system to your repository with the commands
cd the_project git init git add . git commit -m "Initial git commit message" git remote add origin [email protected]:the_project.git git config --global remote.origin.receivepack "git receive-pack" git push origin master
-
Create a public key as the user and add it to the server's authorized keys
You can do this step by just copying the file id_rsa.pub from the localhost to the servers ~/.ssh/authorized_keys file, as suggested in the previous answer.
After following these steps if you try the git push, you should not get a "permission denied" error.
Amit Nandan Periyapatna
BY DAY: Software Developer at HomeSpotter developing Real Estate data solutions for clients in the USA and Canada. BY NIGHT: Open Source Web Application Developer who loves to explore new technologies and features among the vast array of free frameworks. HOBBIES: Badminton, BOOK WORM and Foodie!
Updated on June 23, 2022Comments
-
Amit Nandan Periyapatna almost 2 years
I have set up a git repo on my amazon ec2 ubuntu server instance. I have been trying to push the code onto the server's repo from my local machine. The steps that I followed are:
ssh-add /path/to/myEC2publickey
On my EC2 Instance
mkdir /path/my_project.git cd /path/my_project.git git init --bare
Later on my localhost,
cd the_project git init git add . git commit -m "Initial git commit message" git remote add origin [email protected]:the_project.git git config --global remote.origin.receivepack "git receive-pack" git push origin master
Since I was getting a Permission Deined (public key) error while executing the last command (i.e. git push origin master), I set the public key using the steps given on a forum that included -
ssh-keygen -t rsa -C "[email protected]" eval 'ssh-agent -s' ssh-add
I was able to add the public key but I am still facing the Permission Denied (public key) : Error.
I'm new to git and have been looking forward to shift all my code into a git repo.
Any help would be greatly appreciated.