在生产服务器上放置“PermitRootLogin yes”是否是一个不好的做法?

有一天(4年前),我重新启动了我的服务器。 重新启动完成后,我尝试像平常一样使用常规(非root)帐户login。 那时候,我有PermitRootLogin no

我得到了答案

系统在2009年8月16日星期日下午4点43分48秒发生故障

并无法login。 但事实并非如此,服务器不会closures。 它已经closures了,但已经closures了。 实际上,我注意到由于一些神秘的原因, shutdown创build的/etc/nologin文件没有被删除。

/etc/nologin文件存在时,SSH不允许任何用户login,除root以外。

由于PermitRootLogin被设置为“no”,我无法login并被迫以救援模式重新启动服务器,挂载文件系统,删除/etc/nologin文件并重新启动。

那么,你认为让PermitRootLogin设置为“yes”,但是closures其密码( passwd -l root ),这样只有root用户允许SSH密钥连接?

sshd已经支持你想要的场景:

 PermitRootLogin without-password 

这允许root使用除密码以外的任何validation方法。

对于单系统pipe理员的情况,这很好。 虽然,正如这里和其他地方讨论的那样,如果你有多个系统pipe理员,他们都不应该以root身份login。

在你是唯一的pipe理员的系统中,这很好。

但是拥有大量系统和pipe理员的组织需要function审计。 这意味着共享凭据必须最小化,即使它们是ssh密钥。 否则,你永远无法知道谁执行了什么行动。