Issue:
ubuntu@rgvwebpro:~$ git push
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Resolution:
The error message you’re seeing is typically related to SSH key authentication issues when trying to communicate with a GitHub repository. The steps to resolve this error and prevent it from occurring in the future are as follows:
- Check SSH Keys: Make sure that you have an SSH key generated and added to your GitHub account.
- To check if you have an SSH key, you can run the following command:
ls -al ~/.ssh
- If you don’t see any SSH keys, or if you want to create a new one, you can generate an SSH key using the command:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- To check if you have an SSH key, you can run the following command:
- Add SSH Key to GitHub:
- Run
cat ~/.ssh/id_rsa.pub
to display your public SSH key. - Copy the displayed key.
- Go to your GitHub account settings, navigate to the SSH and GPG keys section, click on “New SSH key”, paste your public key into the text field, and save it.
- Run
- Check SSH Agent:
- Ensure that the ssh-agent is running by executing
eval "$(ssh-agent -s)"
. - Add your private SSH key to the ssh-agent using the command:
ssh-add ~/.ssh/id_rsa
- Ensure that the ssh-agent is running by executing
- Test the Connection:
- Test your SSH connection to GitHub using the following command:
ssh -T git@github.com
- You should receive a message indicating that you’ve successfully authenticated, but that GitHub does not provide shell access.
- Test your SSH connection to GitHub using the following command:
- Update Remote URL (Optional):
- If your repository is still configured to use HTTPS, you might want to switch to SSH. You can check the remote URL using:
git remote -v
- If needed, change the remote URL to use the SSH protocol:
git remote set-url origin git@github.com:username/repo.git
- If your repository is still configured to use HTTPS, you might want to switch to SSH. You can check the remote URL using:
- Retry the Push:
- Now try pushing to GitHub again:
git push
- Now try pushing to GitHub again:
- Check Repository Permissions:
- Ensure that your GitHub account has the necessary permissions to access the repository you’re trying to push to.
By following these steps, you should be able to resolve the “Permission denied (publickey)” error when pushing to GitHub.