SSH和安全指南

我试图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
  • 调整sudoer文件中的超时值。

打开sudoers文件:

sudo visudo

并将Default timestamp_timeout的值更改为更舒适的值。

Default timestamp_timeout=30

有了这个值sudo记住你的密码30分钟。

在sudoers文件中还有其他几件事情可以改变。 我build议阅读这篇博文 。