+1 (506) 500-5957 sales@monovm.com

Troubleshooting SSH Permission Denied (publickey)

Learn how to troubleshoot and fix the SSH Permission Denied (publickey) error. Understand the causes and solutions for this common SSH authentication issue.

Posted: 05 Apr, 23 Updated: 05 Apr, 23 by Susith Nonis 4 Min

List of content you will read in this article:

SSH: A tool that many admins couldn't imagine getting by without. It's like a trusty wrench in the toolkit that helps keep the server wheels turning. But like any tool, it can sometimes refuse to cooperate, and you may need to do some troubleshooting to fix it. If you've ever encountered the Permission Denied (publickey) error, you know how frustrating it can be. It's one of those pesky SSH errors that can ruin your day. But fear not, for we're here to help you understand what causes it and, more importantly, how you can fix it. So, please grab a cup of coffee and let's dive into some SSH problem-solving.

Oh boy, the SSH Permission Denied (publickey) Error. It's like the curse of the SSH universe. The error message makes you want to shake your fist at the computer and scream, "Why me?!" But fear not, my friends. I'm here to shed some light on this mysterious error.

In a nutshell, the SSH Permission Denied (publickey) Error occurs when your SSH connection gets rejected by a remote server because it doesn't recognize your public key. 

It's like getting into a high-security facility without the right access card. You'll just be sitting outside, twiddling your thumbs and feeling rejected. So, if you get hit with this error, you need to give the server permission to access your key.

  • Check SSH Agent

If you use an SSH agent to manage your keys, ensure your key is loaded into the agent. You can check the agent using the following command:

$ ssh-add -l

If the agent is not running, you can start it using the command:

$ eval "$(ssh-agent -s)"

  • Check the Key Permissions

Before checking the key permissions, ensure you have copied the public key to the remote server. If you have already done this, ensure the permissions on the key files are correct. The private key file should have 600 permissions, and the public key file should have 644 permissions. To change the file permissions, execute the following commands:

$ chmod 600 ~/.ssh/id_rsa

$ chmod 644 ~/.ssh/id_rsa.pub

  • Check SSH Configuration

You should check the SSH configuration files to ensure the server is configured to accept public key authentication. The following lines should be present in the SSH configuration file:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

If these lines are missing, add them to the configuration file and save the changes.

  • Check Server Logs

If none of the above methods works, you should check the server logs to discover the problem's cause. The server logs are usually in the /var/log/auth.log or /var/log/secure file. You can view the logs using the following command:

$ tail -f /var/log/auth.log

The "SSH Permission Denied (publickey)" error is a common issue users face while using SSH. You can try several methods to resolve the issue, including checking the SSH agent, key permissions, SSH configuration, and server logs. Following these methods, you can quickly fix the "Permission Denied (publickey)" error and access your remote server.

  • The Permission Denied (publickey) error is common when trying to SSH into a server. It's typically caused by the SSH server rejecting authentication attempts due to incorrect key configurations or a lack of permission to use them.
  • Various reasons, including expired or removed keys, incorrect file permissions, and server SSH configuration changes can cause the error message. This can make it challenging to pinpoint the exact cause.
  • To fix the error, you should first ensure that your keys are correctly configured on both the client and server, reset the permissions on the “authorized_keys” file, and check the server's SSH configuration. You may also need to generate new keys and update your “authorized_keys” file on the server to resolve the issue.

People also read: 

Frequently Asked Questions

This error message usually means that the SSH server is rejecting your authentication attempt because it doesn't recognize your SSH key or doesn't have permission to use it. 

This can happen when the SSH key is expired or has been removed from the authorized_keys file on the server. Another possible cause is that the server's SSH configuration has changed, such as disabling password authentication, which can cause the server to reject any authentication other than SSH keys. 

Yes, this error message is specific to SSH key authentication. You'll see a different error message if you're using password authentication and receive an authentication error.

Susith Nonis

I'm fascinated by the IT world and how the 1's and 0's work. While I venture into the world of Technology, I try to share what I know in the simplest way with you. Not a fan of coffee, a travel addict, and a self-accredited 'master chef'.