I just created a ubuntu 18.04 LTS droplet with SSH connection. I am trying to access it from my terminal at local machine by ssh <PUBLIC IP>. but I am getting Permission Denied (public key). I have added the SSH key from id_rsa to my DO account and also added it to the droplet when creating. I did not set any password as I wanted to do via SSH only. When I am trying to access console from the dashboard, it’s asking for password which I did not set. How can I solve this?
I tried to destroy and recreate droplet, but same problem is occurring. How can I fix it?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Click below to sign up and get $200 of credit to try our products over 60 days!
You need to add your id_rsa.pub key to your DigitalOcean account. Also when you ssh you can use the -vvv option to get more verbose output and see why it fails to connect, e.g
If the ssh is still failing, feel free to paste the output of the ssh connection.
In case someone else has this issue in the future… recreating the droplet for me was not an option as I already had updated DNS to point to the IP address assigned to the droplet.
Make sure when you copy the contents of your id_rsa.pub key and paste it into the DigitalOcean SSH key add form, you don’t have any spaces or newlines following the last character of the key. Whitespace/newlines will cause the key to be invalid and the connection to fail. That was my issue. I deleted the bad SSH key at DigitalOcean and created a new one, this time making sure no spaces (or newlines) followed the last character of the key (which is usually your local username or email address).
Hope that helps someone in the future!
I experienced the same issue even though I had added my SSH key when I created the droplet. I ended up resetting the password which resulted in the SSH key working again without doing anything else. NB.
ssh -vvv user@myipshowed me that the SSH key was in known_hosts but for some wierd reason it was not authenticating me. I think @lakeshore 's answer is very useful as well