![为什么不允许 root 通过 ssh 登录?](https://linux22.com/image/516726/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%85%81%E8%AE%B8%20root%20%E9%80%9A%E8%BF%87%20ssh%20%E7%99%BB%E5%BD%95%EF%BC%9F.png)
为什么要禁用 ssh 的 root 访问权限?我总是听说这是出于安全原因。但我不明白。以非 root 身份登录有什么不同sudo su -
?处理需要特权权限的任务的首选方法是什么?
谢谢
托马斯
答案1
当您需要委派管理任务时,Sudo 是首选方式,因为它具有可审计性和丰富的粒度。Sudo 允许记录所有命令,并允许管理员为个人或组设置不同的 sudo 配置文件。
su 或 root 访问权限是全部或全部
答案2
Root 是每个 Unix 机器上都必定开启并启用的一个帐户,因此选择它来尝试暴力破解密码是理所当然的。如果没有外部工具(可以杀死明显扫描器的包装器、入侵者防御设备等),破解密码只是时间问题。即使有外部工具阻止这种行为,强制新用户以普通用户身份登录,然后通过 su/sudo/pfexec 获得增强权限仍然是一个好主意。是的,这是一个额外的步骤,这意味着您必须在 root 用户共享的机器上创建用户帐户,但这是攻击者与不受限制的机器控制之间的另一道屏障。
答案3
主要区别在于攻击者也必须猜测用户名。如果你让 root 登录,那么他只需猜测密码即可。
此外,他还可以伪造用户登录,获取 ssh 密钥或使用中间人方法重新发送数据,这样他就可以登录系统而无需输入密码。但如果他以用户身份登录,则必须使用 sudo 来执行命令,因此他必须手动输入密码。如果他以 root 身份登录,则他不需要使用 sudo 来执行任何操作,因此安全措施就少了一个。
答案4
这样做的主要优点是允许更灵活的访问控制:如果用户通过 sudo 拥有 root 权限,则可以轻松授予 root 权限或根据需要将其取消。相反,如果您实际上将 root 密码交给人们,您就无法将其取消(除非您是黑衣人 ;-)),您只能更改 root 密码,这将影响所有人。
在这种情况下,直接 root 登录是不必要的,因为没有人拥有 root 密码。
(在单用户模式下,您仍然需要 root pw 来在控制台上进行紧急访问;但是应该有特殊规定)。