使用 IT 配置管理器

使用 IT 配置管理器

许多用户都知道,我运行了许多 Debian 服务器,用于个人、工作和志愿者组织。最近我在超级用户和 IT 安全方面看到很多关于禁用密码和仅使用基于密钥的身份验证的帖子。

我使用基于密钥的身份验证来root访问我的个人服务器、工作笔记本电脑以及我大部分时间在工作之外使用的计算机。但是,要访问任何不使用 WinSCP 的服务器(我的密钥保存在那里,至少对于我的 Windows PC 来说是这样),我先以我的标准用户帐户登录,然后su使用非常长的密码登录为 root。

在我不为工作目的管理的服务器上,我只把这些密钥保存在这三个地方,主要用于备份。我使用非常强的密码(在我看来),而且只使用强PermitRootLogin withoutpassword密码(我喜欢配置文件让我在句子中使用它们!)。当我从其他地方登录时,我会使用我的常规帐户和一个强密码,因为我没有地方可以保管钥匙,如果我需要从新设备正常登录,也可以直接打开

我认为这有两种可能的解决方案:

  1. 将密钥以纯文本形式或加密形式存储在远程某个地方,禁用对我的服务器的所有基于密码的身份验证方法。如果是这样,我在哪里以及如何安全地存储它们,以免它们被可能受到损害?
  2. 使用强密码,每 90 天更改一次。我确信这是个好习惯,但我的记忆力真的很差。我确信我会继续使用相同的密码,只是出于习惯,这完全违背了这样做的意义。

我真的很想使用方法 1,但我不知道最好的做法是什么,因为有这么多服务器,而且其中许多服务器使用不同的密码才能从新位置开始登录。例如,我经常使用手机回家,或检查远程站点的服务状态。

答案1

经验和研究都表明,最安全的密码是那些长度较长但不复杂,这对于那些记忆力差的人来说确实很糟糕(包括我!)。因此,在我看来,在管理大量服务器时,使用基于密钥的身份验证是正确的方法。

与此同时,任何涉及安全和远程存储在同一句话中通常会让人感到不舒服。我不是说任何偏远地区可能不安全,但你无法知道它是否真的不安全。另一方面,从实用性方面来看,你会拥有将 SSH 密钥存储在远程位置。

因此,综合考虑以上因素,我有 2 个建议:

使用 IT 配置管理器

例如:Puppet、Chef 服务器或类似服务器。

你提到你有一个个人服务器。这可能是最不糟糕托管中央配置服务器的地方。您可以创建一个模块,以加密形式保存您的 SSH 密钥,并允许您的个人计算机、工作笔记本电脑和潜在的新设备部署它。

我们用Chef 服务器来执行这些任务。它有一个功能叫做数据包,还有一种非常有趣的叫做加密数据包它确实允许您存储所有密码、SSH 密钥和任何敏感数据。

Chef 架构

无论你选择哪个配置管理器,你都可以使用它在两台服务器上部署密钥个人电脑。

这种方法有一个很大的优点:如果您的私钥因任何更改而受到损害,您只需在一个地方进行更改,它就会被部署到所有服务器和客户端上,而不会浪费任何时间。

不过,它也有缺点。如果你打算通过手机、平板电脑等移动设备访问你的服务器,那么你可能没有Chef|Puppet|将您最喜欢的配置处理程序服务器放在这里客户在那里。

有关这些的更多信息:

使用加密的本地文件管理器

有些软件会加密您的密钥,无论它们是密码、SSH 密钥还是银行数据。这有一个明显的缺点:要保护您的密码,您需要一个密码(而且您可能想要一个非常好的密码)。无论如何,如果您喜欢这种方法,您可以将加密密钥保存到 U 盘中,随身携带。

这还有另一个潜在的缺点:你可能会丢失你的 U 盘,有人可能会偷走它……在这种情况下仍然加密,但您可能需要喝几杯咖啡来更改所有 Debian 服务器和客户端上的 SSH 密钥,这可能会让您认为方法 1 更具可扩展性。

无论如何,我只知道一种足够安全的软件来存储您的所有密钥(顺便说一句:您可以使用密码(如上所述)、密钥文件或两者来保护您的密码文件)。

如果你喜欢这种方法,你可能想看看Keepass

相关内容