即使禁用 root 登录,仍会出现 sshd root 登录错误 - 如何解决?

即使禁用 root 登录,仍会出现 sshd root 登录错误 - 如何解决?

在我的 Linux 服务器(Ubuntu 18.04.6 LTS)上,我设置了

PermitRootLogin no

在 /etc/ssh/sshd_config 中并使用重新加载配置

sudo service sshd reload

但我仍然看到

Mar 14 06:18:02 myhost sshd[30049]: error: maximum authentication attempts exceeded for root from 11.222.111.22 port 16138 ssh2 [preauth]
Mar 14 06:18:02 myhost sshd[30049]: Disconnecting authenticating user root 11.222.111.22 port 16138: Too many authentication failures 

在日志中。那么为什么呢?应该完全禁用 root 登录吗?如果不允许 root 登录,为什么还要询问或检查密码?

答案1

正如您所说,您已禁用 root 登录PermitRootLogin no。这样,root 用户就无法直接登录您的操作系统。在您提到的日志中,您会看到 root 登录,因为您的服务器可能已发布在互联网上,并且机器人正在尝试通过 root 用户登录您的操作系统。

我的建议是像您一样禁用 root 登录,并在 sshd_config 文件中添加一些允许的用户,例如工程师的 eng、开发人员的 dev 或任何人,如下所示。这样您就可以限制通过这些用户进行的 SSH 登录。

AllowUsers eng dev tommy

为了获得更好/更高的安全性,最好将端口号从默认的 22 更改为其他端口号,并且如果可能的话,使用公钥/私钥身份验证而不是密码身份验证。

答案2

您可以尝试 arestart而不是 areload因为它更有力一些。

如果失败了,您还可以尝试添加DenyUser root- 它可能PermitRootLogin仍然允许 root 尝试登录,即使它永远不会成功?

相关内容