我试图build立一个Ubuntu的服务器(14.04 LTS)遵循一些安全的指导方针。
其中一条准则build议禁用root用户,并使用sudo创build一个以pipe理员身份工作的新用户。 这些指导方针中的另一个build议通过用户和密码禁用SSHauthentication,并启用公钥authentication。
我遵循这两个build议,现在我发现自己在服务器上使用新的pipe理员帐户,但需要input该用户的密码,每次我需要执行pipe理命令(sudo要求)。
问题是:这是否真的是一切都应该工作的方式(根据安全准则)?
我的意思是:用于ssh身份validation的密码的漏洞不同于在打开的会话中执行sudo“(相同)”密码的漏洞。
没有人真的解决了你的问题。
禁用sudo命令的密码不是太大的安全风险,特别是如果您使用纯密钥SSHlogin。 要做到这一点,运行:
sudo visudo
并编辑“sudo”组行如下:
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
NOPASSWD是关键。 有了这个,你将不再被要求input密码与sudo运行命令。
是的,这确实是一个普遍的做法。
使用sudo而不是以root身份工作主要是为了保护你自己 – 如果你必须要做一些危险的事情,你更有可能注意。
关于通过SSH密钥使用它:
禁用基于密码的login有效地防止了通过简单地尝试大量的普通账户密码(如root)来强制企图loginSSH服务器。 您需要私钥文件以这种方式login。 这比允许密码login安全得多。
这层安全性被添加到sudo密码的安全性中,因为只有在通过SSH与您的私钥文件login到计算机后才能使用它。
是的,这是一个普遍的做法。 这是一种常见的做法,因为如果ssh被禁用,攻击者必须猜测可以访问服务器的用户名。
如果你想避免input密码,你有几个select:
sudo bashlogin到root shell 打开sudoers文件:
sudo visudo
并将Default timestamp_timeout的值更改为更舒适的值。
Default timestamp_timeout=30
有了这个值sudo记住你的密码30分钟。
在sudoers文件中还有其他几件事情可以改变。 我build议阅读这篇博文 。