Search code examples
gitpermissionssshgithub

Permissions error github (ssh key not recognized)


I seem to have lost my permissions to a github account after pushing to it from another (local) repository. I am now receiving the following error:

git push 
Permission denied (publickey).fatal: 
The remote end hung up unexpectedly

I then took the following steps to regenerate a key:

ssh-keygen
Set up an ssh on my account for this laptop, using id_rsa.pub

However, this was unsuccessful. When I try the following code suggested, I receive the following error:

ssh-add -l
Could not open a connection to your authentication agent.

Any thoughts?


Solution

  • I solved this problem following this step-by-step instructions:

    Step 1: Check for SSH keys

    $ cd ~/.ssh
    # Checks to see if there is a directory named ".ssh" in your user directory
    # If it says "No such file or directory" skip to step 3. Otherwise continue to step 2.
    

    Step 2: Backup and remove existing SSH keys

    $ ls
    # Lists all the subdirectories in the current directory
    # config  id_rsa  id_rsa.pub  known_hosts
    
    $ mkdir key_backup
    # Makes a subdirectory called "key_backup" in the current directory
    
    $ cp id_rsa* key_backup
    # Copies the id_rsa keypair into key_backup
    
    $ rm id_rsa*
    # Deletes the id_rsa keypair
    

    Step 3: Generate a new SSH key

    $ ssh-keygen -t rsa -C "your_email@youremail.com"
    # Creates a new ssh key using the provided email
    
    # Generating public/private rsa key pair.
    # Enter file in which to save the key (/home/you/.ssh/id_rsa):    
    # Enter passphrase (empty for no passphrase): [Type a passphrase]
    # Enter same passphrase again: [Type passphrase again]    
    # Your identification has been saved in /home/you/.ssh/id_rsa.
    # Your public key has been saved in /home/you/.ssh/id_rsa.pub.
    # The key fingerprint is:
    # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
    

    Step 4: Add your SSH key to GitHub

    $ sudo apt-get install xclip
    # Downloads and installs xclip
    
    $ xclip -sel clip < ~/.ssh/id_rsa.pub
    # Copies the contents of the id_rsa.pub file to your clipboard
    

    Then, go to GitHub, and do:

    1. Go to your Account Settings
    2. Click "SSH Keys" in the left sidebar
    3. Click "Add SSH key"
    4. Paste your key into the "Key" field
    5. Click "Add key"
    6. Confirm the action by entering your GitHub password

    Step 5: Test everything out

    $ ssh -T git@github.com
    # Attempts to ssh to github
    

    If ok, you'll see

    Hi username! You've successfully authenticated, but GitHub does not
    # provide shell access.
    

    Otherwise (it happened with me), you will see

    Agent admitted failure to sign using the key.
    # debug1: No more authentication methods to try.
    # Permission denied (publickey).
    

    To solve this

    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)
    

    For original info

    https://help.github.com/articles/generating-ssh-keys

    https://help.github.com/articles/error-agent-admitted-failure-to-sign