Permission denied (publickey)

July 24, 2019 571 views
Applications Ubuntu 18.04

good afternoon, i generated a ssh key into remote server and now i cannot login, it say: Permission denied (publickey). Can i recover this server?

2 Answers

If you haven’t disabled password logins to your droplet, you could try:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no <your_droplet_address>

This will make ssh skip sending the key and the server will prompt for username / password.

If you can’t log in with a username and password any more, your only option is to use the console: https://www.digitalocean.com/docs/droplets/resources/lost-ssh-key

  • Step 1: enable password login on server side for temporary. We’ll change it back in step 4.

    Need to run from REMOTE SERVER

    echo "PasswordAuthentication yes # TO REMOVE ME" | sudo tee -a /etc/ssh/sshd_config
    sudo systemctl restart ssh
    
  • Step 2: upload SSH key file from localhost to server.

    Need to run from LOCAL HOST

    ssh-copy-id <user_id>@<server_ip_address>
    

    You should be asked for input the remote user’s login password.

  • Step 3: test if the SSH key is working.

    Need to run from LOCAL HOST

    ssh <user_id>@<server_ip_address>
    

    It should be logged in without login password.

  • Step 4: restore server side SSH daemon’s setting.

    Need to run from REMOTE SERVER

    sed -e '^PasswordAuthentication yes # TO REMOVE ME$' -i /etc/ssh/sshd_config
    sudo systemctl restart ssh
    
Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!