我们正在寻求切换到基于SSH登录的基于密钥的管理,并且想知道是否有任何密钥管理系统可以使我们在全球范围内集中管理访问密钥。
理想情况下,系统应允许为每个客户端颁发密钥,并在需要时撤销它们,并动态更新服务器机器密钥。
有谁知道这样的系统,无论是商业的还是开源的?
注意:为明确起见,我们需要针对大量云服务器(如EC2)和少量服务用户的密钥管理。我想下面建议的LDAP +补丁可能是解决方法。
我们正在寻求切换到基于SSH登录的基于密钥的管理,并且想知道是否有任何密钥管理系统可以使我们在全球范围内集中管理访问密钥。
理想情况下,系统应允许为每个客户端颁发密钥,并在需要时撤销它们,并动态更新服务器机器密钥。
有谁知道这样的系统,无论是商业的还是开源的?
注意:为明确起见,我们需要针对大量云服务器(如EC2)和少量服务用户的密钥管理。我想下面建议的LDAP +补丁可能是解决方法。
Answers:
有很多方法可以做到这一点。LDAP密钥存储已被提及过两次,而我已经做到了,并且就它而言一直有效。但是,LDAP有其自身的管理需求,需要学习一些知识。
我是简单,健壮的服务器的忠实拥护者,这些服务器对诸如身份验证管理员之类的简单事情具有最小的外部网络依赖性,因此我倾向于使用更健壮的SSH密钥分发策略-由配置管理系统来负责。每个人的公钥都保存在配置管理系统中,只要该人需要登录,就可以添加他们的密钥。配置系统还知道删除未指定的密钥,因此,当某人离开或更改其密钥时,删除密钥配置很简单,并且在下一次配置系统运行时,密钥也会被删除。
密钥对应由用户生成。
用户保留私有部分-您永远都不会看到它。如果您以可以读取/使用它的形式拥有某人的私钥,则表示安全性有误。
公用部分(通过任何所需的机制提供给您):Web表单,电子邮件,给我CD上的CD,可以根据需要进行集中管理。有些地方将公用密钥存储在LDAP中。其他人则authorized_keys
使用他们的部署系统推出文件。
在我的环境中,需要外壳程序访问权的用户将其公共密钥提供给我。这些密钥已添加到我们的LDAP系统中,并sshd
通过LDAP公共密钥补丁程序查阅为每个用户列出的公共密钥以对其进行身份验证。
当有人需要添加其他密钥或撤消现有密钥时,他们会通知管理员,我们会处理。最终,随着我们的扩展,我将实现一个允许人们旋转自己的公钥的系统。
我们每个站点都有一对LDAP服务器,并通过LDAP复制与我们的主服务器同步,从而使每个位置的数据保持一致(并可以访问)。
我所描述的一切都可以使用开源软件来完成。也有做相同事情的商业产品。
您需要更全面地研究可用选项,并确定最适合您的环境的选项。如果您还有其他(更具体的)问题,我们可能会更有帮助。
/etc/passwd
,并推出标准化和/etc/group
文件(即使LDAP不可用,也可以使机器正常运行,并且相关的服务可以启动/运行)
密钥对不应该在每个用户的计算机上的任何地方生成。私钥之所以这样命名是有原因的。
就是说,我可以看到用户公用密钥的某种集中存储库的用例。一种选择是将公用密钥存储在OpenLDAP中-最新版本的OpenSSH可以从LDAP中读取密钥。
我知道这是一个稍旧的问题,但是Google在寻找这种东西时会返回很高的值。
对于那些寻求除LDAP之外的解决方案的人,我刚刚找到了“ SKM”项目:https : //sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp
有很多很棒的商业和开源解决方案,例如Userify [1](我在这里工作),Universal Key Manager [2],SSH Key Box [3]等。这取决于您的需求以及是否满足寻找集中管理的同时分散操作的内容(这样,您的服务器就不必依赖中央机构登录...在这种情况下,您可能无法登录任何服务器,例如,如果您的服务器LDAP服务器已关闭!)
另请参阅以下偏斜讨论: