git@github.com: Permission denied (publickey)

in

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:

  1. 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"
  2. 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.
  3. 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
  4. 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.
  5. 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
  6. Retry the Push:
    • Now try pushing to GitHub again: git push
  7. 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.

Discover more from Jorge Saldívar

Subscribe now to keep reading and get access to the full archive.

Continue reading