您发现管理大量 SSH 密钥对的最佳实践是什么?
我在家里和工作中使用 SSH 连接到多个系统。我目前有一个相当小的、可管理的密钥对集合,用于工作和家庭系统。我有一个生成命名密钥对的脚本,这样我就可以避免混淆。
我的家庭网络由我的笔记本电脑 (ubuntu)、两台台式机(ubuntu/fedora 双启动、fedora/windows 双启动)和一个媒体系统 (ubuntu) 组成。在工作中,我有我的个人笔记本电脑(我用来在家工作)、我的台式机 (fedora)、一个生产系统 (RHEL) 以及一台带有 Windows (sigh) 和 VM (fedora) 的笔记本电脑。到目前为止一切都很好。
(我没有兴趣将我的家庭密钥对放在我的工作系统上,或者我的工作密钥对放在我的家庭系统上。而且我们有虚拟用户帐户来机械化与其他系统的文件传输,其中私钥必须位于生产机器上,在其他系统之间传输文件。)
但是现在出现了 Hadoop,一个由 100 多个系统组成的大型集群,并且具有更高的复杂性、更多的用户和更多的密钥对。现在我需要管理密钥。
(我需要澄清一下。我是一名软件开发人员,正在为正在部署 Hadoop 集群的客户提供咨询。他们需要管理密钥。会有很多人访问集群,需要将他们的公钥放到系统中。作为居民Linux 专家,他们向我寻求帮助。我建议聘请系统管理员,但在他们这样做之前,我正在帮助)
当我需要将公钥发布到远程系统时,所有“操作方法”网页都建议覆盖 (>)(销毁现有密钥)或附加 (>>)(这很好,保留现有密钥) . 但我认为在目标机器上分别保留每个公钥,然后将它们组合会更好。我正在寻求建议。
您发现管理大量密钥的最佳实践是什么?
谢谢!
编辑:一方面是需要在许多系统上放置密钥,以及特定用户的伴随 CRUD(创建、读取、更新、删除/禁用),这意味着需要能够识别哪些密钥属于哪些用户。
phe*_*mer 12
通常,每台客户端计算机的密钥不应超过 1 个(强调“一般”)。我不确定我是否正确理解了您的问题,但是如果您说每个远程系统都有一个单独的密钥,那么您肯定做错了。
SSH 使用公钥加密。您在远程系统上安装的密钥是公钥,在其他地方重用此密钥绝对没有害处。它是必须受到保护并保留在您的个人系统上的私钥。
将私钥仅驻留在一个客户端上而不是共享也是一个好主意。这样一来,如果客户端受到威胁,您可以仅撤销该密钥。
现在,如果您要问如何将您的公钥发送给数百个系统,有几种方法可以做到这一点。
最常见的方法是使用共享主目录。将 NFS(或其他网络文件系统)挂载(或自动挂载)所有系统。
另一种方法是利用 ssh 中的新功能。这是一个名为AuthorizedKeysCommand
. 基本上,sshd 每次需要查找公钥时都会运行该命令。该命令只是将被查询用户的公钥写入它的 STDOUT。这主要用于当您没有挂载主目录但仍有中央身份验证服务器时(FreeIPA利用了这一点)。
当然,您可以/home
从中央服务器执行其他操作,例如 cron job rsync 。但这不是常见的做法。
归档时间: |
|
查看次数: |
4127 次 |
最近记录: |