SSH密钥的集中管理系统?


27

我们正在寻求切换到基于SSH登录的基于密钥的管理,并且想知道是否有任何密钥管理系统可以使我们在全球范围内集中管理访问密钥。

理想情况下,系统应允许为每个客户端颁发密钥,并在需要时撤销它们,并动态更新服务器机器密钥。

有谁知道这样的系统,无论是商业的还是开源的?

注意:为明确起见,我们需要针对大量云服务器(如EC2)和少量服务用户的密钥管理。我想下面建议的LDAP +补丁可能是解决方法。


7
只有我认为“私钥和云”就像“酒后驾车”一样的我。两者都是分开取乐,但永远不会在一起。
mailq

1
“云”可能是一个错误的词,听起来像他们想要的是具有全球一致性的集中式身份验证。
voretaq7 2011年

你好 正是-我们在寻找什么。
SyRenity

对于某些客户的混合环境,我一直在努力解决此问题。还有一个问题,即在云部署中将OPenLDAP或中央实例保留在哪里?我一直在使用webmin of all作为密钥管理工具,并使用厨师食谱将密钥同步到节点。
Tom H

你要找的内容(见Userify盖serverfault.com/questions/647797/...
贾米森贝克尔

Answers:


8

有很多方法可以做到这一点。LDAP密钥存储已被提及过两次,而我已经做到了,并且就它而言一直有效。但是,LDAP有其自身的管理需求,需要学习一些知识。

我是简单,健壮的服务器的忠实拥护者,这些服务器对诸如身份验证管理员之类的简单事情具有最小的外部网络依赖性,因此我倾向于使用更健壮的SSH密钥分发策略-由配置管理系统来负责。每个人的公钥都保存在配置管理系统中,只要该人需要登录,就可以添加他们的密钥。配置系统还知道删除未指定的密钥,因此,当某人离开或更改其密钥时,删除密钥配置很简单,并且在下一次配置系统运行时,密钥也会被删除。


这种做法无疑是一个很好的,和旺布尔指出它有在该服务器的优势熬夜事件LDAP运行(和访问)下跌-每个LDAP支持系统应(我敢说必备)必须在至少一个按Womble描述的方式推出键的用户。缺点是您必须进行配置运行才能取消对用户的授权。对于只有几个授权用户的“紧急帐户”来说,这不是问题。大量帐户的更大问题:)
voretaq7 2011年

1
无论如何,您确实确实必须有一种触发大规模配置运行的方法,因此,对于帐户更改而言,这样做并不重要。
womble

我同意,不幸的是,业务需求/心态并非如此:在许多地方(包括我的矿山),偏执狂都要求在下班时间进行配置推送,但是新员工/离职员工可以随时进行:-/
voretaq7 2011年

1
因此,您很乐意在一天之内把东西弄碎,只是因为您无法在白天运行配置推送?仅仅因为它很常见,并不意味着它并不愚蠢。
womble

2
你好 因此,例如,将一个好主意用于Puppet吗?
SyRenity

23

密钥对应由用户生成。

用户保留私有部分-您永远都不会看到它。如果您以可以读取/使用它的形式拥有某人的私钥,则表示安全性有误。

公用部分(通过任何所需的机制提供给您):Web表单,电子邮件,给我CD上的CD,可以根据需要进行集中管理。有些地方将公用密钥存储在LDAP中。其他人则authorized_keys使用他们的部署系统推出文件。


在我的环境中,需要外壳程序访问权的用户将其公共密钥提供给我。这些密钥已添加到我们的LDAP系统中,并sshd通过LDAP公共密钥补丁程序查阅为每个用户列出的公共密钥以对其进行身份验证。
当有人需要添加其他密钥或撤消现有密钥时,他们会通知管理员,我们会处理。最终,随着我们的扩展,我将实现一个允许人们旋转自己的公钥的系统。

我们每个站点都有一对LDAP服务器,并通过LDAP复制与我们的主服务器同步,从而使每个位置的数据保持一致(并可以访问)。


我所描述的一切都可以使用开源软件来完成。也有做相同事情的商业产品。
您需要更全面地研究可用选项,并确定最适合您的环境的选项。如果您还有其他(更具体的)问题,我们可能会更有帮助。


因此,基本上,您建议使用LDAP基础结构以及可与LDAP一起使用的修补OpenSSH?这在生产中的扩展程度如何?它可以支持大量机器吗?我们确实只需要支持少量的服务用户。
SyRenity

1
@SyRenity:LDAP支持复制和群集,因此扩展性非常好
Hubert Kario

@SyRenity从理论上讲,您可以在无限数量的位置支持无限数量的计算机(请考虑“真正的大型Active Directory部署”-AD基本是LDAP,带有一些流行的附件)。对于服务用户,我的建议是在您的环境中对它们进行标准化/etc/passwd,并推出标准化和/etc/group文件(即使LDAP不可用,也可以使机器正常运行,并且相关的服务可以启动/运行)
voretaq7 2011年

@ voretaq7意味着将通过配置管理将服务用户与LDAP分开管理?
SyRenity 2011年

@SyRenity是-并且更重要的是,如果LDAP关闭,则可用于使用它们的服务。计划失败,否则您将遭受灾难。
voretaq7 2011年

9

密钥对不应该在每个用户的计算机上的任何地方生成。私钥之所以这样命名是有原因的。

就是说,我可以看到用户公用密钥的某种集中存储库的用例。一种选择是将公用密钥存储在OpenLDAP中-最新版本的OpenSSH可以从LDAP中读取密钥。


2
LDAP公钥东西现在在主线OpenSSH中了吗?我只知道LPK补丁(我可以担保-很好用)。也可以+1以保持私钥的私密性。
voretaq7 2011年

@ voretaq7我想我听说它已经合并到主线中了,但是我还没有验证自己。我们通过NFS共享主目录,因此可以为我们完成密钥分发。
EEAA 2011年

+1好,我不知道。那会帮我省很多麻烦。那就是我要研究的事情清单。
汤姆H


1

有很多很棒的商业和开源解决方案,例如Userify [1](我在这里工作),Universal Key Manager [2],SSH Key Box [3]等。这取决于您的需求以及是否满足寻找集中管理的同时分散操作的内容(这样,您的服务器就不必依赖中央机构登录...在这种情况下,您可能无法登录任何服务器,例如,如果您的服务器LDAP服务器已关闭!)

  1. https://userify.com

  2. https://www.ssh.com/products/universal-ssh-key-manager/

  3. https://www.sshkeybox.com

另请参阅以下偏斜讨论:

https://www.slant.co/topics/8010/~managers-for-ssh-keys

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.