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 !!