我们正在寻求切换到基于密钥的 SSH 登录管理,并想知道是否有任何密钥管理系统可以让我们在全球范围内集中管理访问密钥。
理想情况下,系统应该允许为每个客户端发布密钥,并在需要时撤销它们,即时更新服务器机器密钥。
有谁知道这样的系统,无论是商业的还是开源的?
注意:为了澄清,我们需要对大量云服务器(类 EC2)和少量服务用户进行密钥管理。我猜下面的 LDAP + 补丁建议可能是要走的路。
vor*_*aq7 23
密钥对应由用户生成。
用户保留私人的一半——你永远不应该看到它。如果您以一种可以读取/使用它的形式拥有某人的私钥,那么您就做错了安全问题。
公共部分是给你的(通过你喜欢的任何机制:Web 表单、电子邮件、CD 上的给我),无论你想要什么都可以集中。有些地方将公钥存储在 LDAP 中。其他人authorized_keys
使用他们的部署系统推出文件。
在我的环境中,需要 shell 访问权限的用户给了我他们的公钥。这些密钥被添加到我们的 LDAP 系统中,并sshd
通过LDAP 公钥补丁查询为每个用户列出的公钥以对其进行身份验证。
当有人需要添加额外的密钥或撤销现有的密钥时,他们会通知管理员,我们会处理它。最终,随着我们的扩展,我将实施一个系统,让人们轮换他们自己的公钥。
我们的每个站点都有一对 LDAP 服务器,通过 LDAP 复制与我们的主服务器同步,从而使每个位置的数据保持一致(和可访问)。
我所描述的一切都可以用开源软件来完成。也有做同样事情的商业产品。
您需要更彻底地研究可用选项并决定哪些选项最适合您的环境。如果您有更多(更具体)的问题,我们可能会更有帮助。
除了在每个用户的计算机上,不应在任何地方生成密钥对。私钥之所以如此命名是有原因的。
也就是说,我可以看到用户公钥的某种集中存储库的用例。一种选择是将公钥存储在 OpenLDAP 中——最新版本的 OpenSSH 可以从 LDAP 中读取密钥。
有很多方法可以做到这一点。LDAP 密钥存储已经被提到过几次,我已经这样做了,而且它确实有效。不过,LDAP 有自己的管理好奇心,这需要一些学习。
我非常喜欢简单、健壮的服务器,这些服务器对管理员身份验证等简单的事情具有最少的外部网络依赖性,所以我倾向于更健壮的 SSH 密钥分发策略——我让配置管理系统来处理它。每个人的公钥都保存在配置管理系统中,凡是需要登录的地方,都加上自己的公钥。配置系统还知道删除未指定的密钥,因此当有人离开或他们的密钥更改时,删除密钥配置很简单,并且在下一次配置系统运行时,密钥将被删除。
归档时间: |
|
查看次数: |
19935 次 |
最近记录: |