我们希望转向基于密钥的SSH登录管理,并想知道是否有任何密钥管理系统允许我们集中管理全球范围的访问密钥。
理想情况下,系统应该允许每个客户端发出密钥,并在需要时撤销它们,动态更新服务器机器密钥。
有人知道这样的系统,无论是商业的还是开源的?
注意:为了澄清,我们需要对大量云服务器(类似EC2)和少量服务用户进行密钥管理。我猜下面的LDAP +修补程序可能是最好的选择。
发布于 2011-08-23 22:19:35
有很多方法可以做到这一点。LDAP密钥存储已经被提到过几次,我已经这样做了,而且它可以工作,就像它所做的那样。不过,LDAP也有自己的管理兴趣,这需要一些学习。
我非常喜欢简单的、健壮的服务器,这些服务器对于简单的事情(比如验证管理员)具有最小的外部网络依赖性,所以我倾向于使用一种更加健壮的SSH密钥分发策略--我让配置管理系统来处理它。每个人的公钥都保存在配置管理系统中,只要用户需要登录,就会添加他们的密钥。配置系统还知道如何删除未指定的键,因此当某人离开或更改键时,只需简单地删除键配置,在下一个配置系统运行时,键就会被移除。
发布于 2011-08-23 20:21:02
密钥对应由用户生成。
用户保留了私密的部分--你永远不应该看到它。如果您有某人的私钥,在您可以阅读/使用它的形式,您做错了安全。
公开的一半是给你的(通过任何你想要的机制:网络表单,电子邮件,给我一个CD),无论你想要什么都是集中的。有些地方将公钥存储在LDAP中。其他人则使用他们的部署系统推出authorized_keys文件。
在我的环境中,需要shell访问的用户会给我他们的公钥。这些密钥被添加到我们的LDAP系统中,sshd通过LDAP公钥修补程序查询为每个用户列出的公钥(S)来验证它们。
当有人需要添加一个额外的密钥或撤销一个现有的密钥时,他们会让管理员知道,我们会处理它。最终,随着我们的扩展,我将实现一个系统,让人们旋转他们自己的公钥。
我们的每个站点都有一对LDAP服务器,通过LDAP复制与我们的主服务器同步,从而使数据在每个位置保持一致(并可访问)。
我所描述的一切都可以用开源软件来完成。还有一些商业产品也能做同样的事情。
你需要更彻底地研究现有的选择,并决定哪一个(S)最适合你的环境。如果你有更多(更具体)的问题,我们可能会更有帮助。
发布于 2011-08-23 20:22:45
键盘不应在任何地方生成,而应在每个用户的计算机上生成。私钥的命名是有原因的。
尽管如此,我可以看到某种用户公钥的集中式存储库的用例。一种选择是在OpenLDAP中存储公钥--最近版本的OpenSSH可以从LDAP中读取密钥。
https://serverfault.com/questions/304286
复制相似问题