Skip to content

How to Disable Root User Login via SSH?

2 min read

Step 1: Login to system as root user. Don’t worry, you will be using root account for remote login only in this step.


Step 2:
 Create an alternate user account. For example, administrator.
[root@root ~]# adduser administrator


Step 3:
 Set a strong password for user account created in step 2.

[root@root ~]# passwd administrator


Step 4:
 Open another terminal & login to the system as the new user created in step 2. This step will allow you to test if the new account works properly.


Step 5:
 Test that you can switch to root account.

[administrator@administrator ~]$ su -


Enter root account password and check if you have gained root access.

[root@root ~]# whoami
root


Step 6:
 Disable root user login via SSH.

[root@root ~]# vi /etc/ssh/sshd_config


Step 7:
 Lookout for '#PermitRootLogin yes'. By default, root login is allowed by SSH.


Step 8:
 Change '#PermitRootLogin yes' to 'PermitRootLogin no'


Step 9:
 Save the file & exit


Step 10:
 Make sure sshd_config does not have any syntax errors.

[root@root ~]# /usr/sbin/sshd -t
[root@root ~]# echo $?
0

The above output suggests, sshd_config does not have any syntax error. In case, if there is an error, you would see non-zero output.


Step 11:
 Restart SSH to read the new configuration change.

# service sshd restart


Step 12:
 Make sure root login via SSH is disabled.

ssh root@<ip-address>

The access should be denied in spite of entering valid password for root user. It means, SSH has denied access to the root account.


Step 13:
 Login as non-privileged user account created in Step 2.


Step 14:
 When needed, switch to root account as below:

[administrator@administrator ~]$ su -


That’s it !!
 

Related services

KVM VPS hosting

NVMe SSD and full root access, with Free Basic Managed Support.

Unmanaged dedicated servers

full root access and free IPMI KVM, with Free Basic Managed Support.

Linux server management

hardening, patching, monitoring and automation for Ubuntu, Debian, RHEL and AlmaLinux.

Was this answer helpful?

Still stuck? Open a ticket