背景


每次登录自己的云服务器,就会发现就十几万的登录失败,一看就是有人在恶意破解密码,很是闹心,那么直接禁止root用户登录吧(其实这也是Linux权限管理的一部分):

1
2
3
4
Last failed login: Thu Oct 22 20:41:42 CST 2020 from 175.0.53.4 on ssh:notty
There were 148991 failed login attempts since the last successful login.
Last login: Wed Oct 7 23:34:49 2020 from 113.246.154.166
[root@lemonlzy ~]#

在禁止root用户登录服务器前,请创建好登录服务器的子账户和密码。

创建Linux账户


创建demo账户并更新密码:

1
2
3
4
5
6
7
8
[root@lemonlzy ~]# useradd demo

[root@lemonlzy ~]# passwd demo
Changing password for user demo.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

此时可以使用demo账户和自定义的密码登录服务器了。

禁止root账户登录


修改SSHD配置,禁用root登录:

1
2
3
4
5
6
[root@lemonlzy ~]# vim /etc/ssh/sshd_config
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
...

PermitRootLogin注释取消,yes调整为no

1
2
3
4
5
6
[root@lemonlzy ~]# vim /etc/ssh/sshd_config
# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
...

重启sshd:

1
[root@lemonlzy blog]# systemctl restart sshd

此时使用root账户远程登录服务器,应该会提示服务器拒绝了密码,那么禁止root账户登录就成功了。

禁止root账户登录后,我们应该怎么登录服务器呢:

  1. 使用子账户登录服务器
  2. 使用命令切换至root账户
1
2
3
[demo@lemonlzy ~]$ su root
Password:
[root@lemonlzy demo]#

可以看到@符号前面的账户已经成功切换。