我想要一些能够集成 SSH、Web 身份验证(理想情况下包括 SSL,可以选择使用客户端证书或密码进行身份验证,就像他们在 MIT 所做的那样)以及任何想要使用它的应用程序的东西。
Kerberos 似乎最符合我的要求,但是工具支持似乎出奇的差。
现在人们用什么?
答案1
一个值得考虑的选项是 LDAP。就密码而言,它适用于 SSH 和 Web。还有用于存储证书的 LDAP 模式,因此它可以用于基于证书的身份验证(但我从未在实践中见过这种情况,所以这要么很难,要么很少见,要么两者兼而有之 :)
LDAP 拥有一系列工具的优势,这些工具的质量从“我要割腕了!”到“这并不可怕”,因此您应该能够找到一个您喜欢的(或者至少不讨厌的:)。
LDAP 的一个缺点:据我所知,针对集中管理(“在 LDAP 中”)SSH 公钥进行身份验证的唯一方法是向 openssh 应用补丁,因此您仍然只能authorized_keys
在各处分发文件。
答案2
我同意 voretaq7,但也请考虑将 LDAP 服务器身份验证传递到 Kerberos 服务器的解决方案。
LDAP 可用于存储用户详细信息,并用于从不支持 Kerberos 的工具(如 PHP)进行身份验证。
Kerberos 允许半无密码的 SSH 和 LDAP(以及其他)身份验证。您会获得一张 Kerberos 票证(例如通过 SSH 进入主机),然后当您通过 SSH 进入另一台主机或使用 ldapmodify 时,系统不会再次要求您输入密码。
这就是 Active Directory 内部的工作方式。Kerberos 用于身份验证,LDAP 用作用户数据库。