After changing permission-related parameters on the SSH server, how to Fix SSH Failed Permission Denied? the problem manifests itself. The installation of a new product or the creation of new users are typical cases.
You will discover How to Fix SSH Failed Permission Denied error and reconnect to your SSH server in this article:
- SSH server on the distant system and SSH client on the local machine
- a username and password for the remote server (for password-based login)
- a user account with root or sudo access
What is Causing SSH Permission to be Denied (public key, gssapi-keyex, gssapi-with-mic)?
When attempting to SSH onto a server, the SSH Permission denied error appears:
Refusal of permission (publickey, gssapi-keyex, gssapi-with-mic)
Following a login attempt, the SSH Permission denied error message appears. The tried authentication methods that were unsuccessful at connection initiation are listed in the bracket after the phrase “How to Fix SSH Failed Permission Denied?” The error gives a false impression that the public key is the problem.
SSH server configuration file sshd config might contribute to the error. The authorized keys file may also not have enough permissions, another issue. The list of public keys for clients who are permitted to SSH onto the server is contained in this file. The system cannot read from the file as a result, and the Permission denied error is returned.
How to fix SSH Permission denied
Both solutions contain steps you need to perform on the server side. Start by opening the terminal on your server and proceed with one of the solutions below.
Solution 1: Enable Password Authentication
If you want to use a password to access the SSH server, a solution for fixing the Permission denied error is to enable password login in the sshd_config file.
To do this, open the file in a text editor. This example uses the nano editor:
sudo nano /etc/ssh/sshd_config
In the file, find the Password Authentication line and make sure it ends with yes.
Find the ChallengeResponseAuthentication option and disable it by adding no.
If lines are commented out, remove the hash sign # to uncomment them.
Save the file and exit.
Restart the SSH service by typing the following command:
sudo systemctl restart sshd
Solution 2: Change File System Permissions
Using the password-based login as the SSH authentication method is not recommended due to security concerns. Therefore, the following solution may be preferable since it troubleshoots the public key authentication method.
First, open the sshd_config file using a text editor:
sudo nano /etc/ssh/sshd_config
In the file, make sure the following options are set as follows:
PermitRootLogin no
PubkeyAuthentication yes
Comment out the GSSAPI-related options by adding the hash sign at the beginning of the line:
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
Also, make sure the UsePAM line is set to yes:
UsePAM yes
Save the file and restart the sshd service:
systemctl restart sshd
Now navigate to your home folder and check the permissions:
ls –ld
If your owner permissions are not set to read, write, and execute (drwx——), use the chmod command to change them:
chmod 0700 /home/[your-username]
Now go to the .ssh folder and recheck the permissions:
ls –ld
This directory should also have read, write, and execute permissions for the file owner. To enforce them, use chmod again:
chmod 0700 /home/your home/.ssh
The .ssh folder contains the authorized keys file. Check its permissions with:
ls -ld authorized keys
Checking the permissions of the authorized keys file
The file owner should have read and write permissions. To set them, use:
chmod 0600 /home/[username]/.ssh/authorized keys
Now try logging in with the key pair again. The output below shows a successful login attempt.
Conclusion
The steps required How to Fix SSH Failed Permission Denied? (publickey, gssapi-keyex, gssapi-with-mic) error were covered in this tutorial. You should be able to correct the problem and successfully SSH onto your server by following the instructions in the guide.