我工作的地方有很多 Linux 和 VPS 服务器。当有人加入公司时,其他员工需要将他的 SSH 密钥添加到每台服务器;相反,如果有人离开,则需要删除他的所有 SSH 密钥。SSH 密钥是主要问题,但更大的困难是,一个人在各种组织软件应用程序(例如 Git、Jira 等)上拥有多个帐户并拥有自己的仪表板。
我想知道是否有办法管理所有组织平台上的用户帐户。或者至少管理 Linux 用户及其 SSH 密钥?
我研究过 KeyClock 等 SSO 程序,但找不到哪个程序可以解决我们的问题。如果您对具体问题有建议,请写在答案中。
答案1
您可以使用 Active Directory 跨不同平台(包括 Linux)对用户进行身份验证。对于 Linux,一种可能的解决方案是使用 sssd。下面是其中一种例子如何使用它。
关于存储密钥,您可以使用 KeyCloak,如下所述这里。
我通过存储 JSON 字符串属性解决了这个问题。我不知道是否有更好的方法,因为我不相信有列表类型。
当然你可以使用本地 LDAP它存储用户密钥并通过 ssh 向外界公开。
更新 LDAP 以包含 OpenSSH-LPK 架构
我们首先需要使用架构更新 LDAP,以便为用户添加 sshPublicKey 属性:
创建一个脚本,用于查询 LDAP 中的用户公钥:
更新 sshd_config 以指向上一步中的脚本