我目前有多个用户使用 ssh 访问多个客户服务器(这些服务器仅允许从我们的公共办公室 IP 访问)。如果有新员工进入公司或团队,或者离开团队或组织,这种情况会很烦人。另一个问题是服务器会根据其阶段(开发、运营)更改所有权。
因此,最好的情况是,每次发生任何变化时,我都以脚本方式(例如 Ansible)更新授权密钥。
问题是我想依赖内部 Active Directory 用户和组成员身份,因此当用户更改团队(和组)或离开公司(停用)时,这些更改会自动发生。但这些服务器需要访问 AD 服务器,而该服务器仅供内部使用。所以这不是一个真正的选择,因为我不希望互联网上有 AD 端口。
因此,我希望拥有一个类似反向堡垒/跳转主机(或 ssh 网关)的东西,它位于我们办公网络的 DMZ 中,用户可以从它连接到客户的 ssh 服务器。如果用户属于正确的组,跳转主机将有权访问 AD 以对用户进行身份验证和授权,而这对于他想要连接的客户服务器是必需的。
我发现了类似的东西(多台服务器的 SSH 访问网关),但它没有解决两个问题: - 没有 AD 集成 - 团队之间没有分离
答案1
查看开源 CLD 软件,它解决了该问题: https://github.com/classicdevops/cld
如果你有任何问题,请随时在评论中提问,我会更新答案
答案2
考虑SSH 证书认证,每个客户都有签名密钥。
但是,这是一个需要单独实施的 PKI(不是 x.509)。您需要设计如何分发和撤销密钥。如果您想将其与目录集成,则需要这样做。