有一天(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密钥。 否则,你永远无法知道谁执行了什么行动。