我是双因素身份验证方面的新手。我大致知道在单个服务器上实施双因素身份验证。但我想知道是否有在多台服务器上实施双因素身份验证的标准解决方案。
设想:
因此,我想为许多 *nix 机器(大约 50 台)启用双因素身份验证。如果我使用 google authenticator 启用双因素 ssh 身份验证(https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-two-factor-authentication),生成并跟踪单个授权码似乎不是一个好主意。有什么方法可以简化整个过程吗?
前任:
有没有办法让我使用一次双因素 ssh 身份验证,并将其与我的 ssh 请求一起转发到所有机器?就像一个可以为我的其余堆栈处理 OAuth 的代理机器?此外,是否有现有的系统/软件/服务可以使实施更容易?我也愿意接受新的架构设计。
提前致谢!
附言:
我们目前在所有机器上都使用基于 ssh-key 的身份验证
答案1
如果您的主要目标是进行一次身份验证并访问所有机器而无需重新进行身份验证,那么您可以使用来自跳转主机的基于主机密钥的身份验证: https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server。
(如果您已经知道此选项,请原谅。)
答案2
如果您有隔离网络(没有人可以使用您的子网),您可以禁用除一两台机器(公共机器)之外的所有机器(我们称之为私有机器)的公共 SSH 访问。
公共机器具有双重身份验证。
私有机器没有双因素身份验证。私有机器的 SSH 端口只能从特定 IP(例如您的子网或公共机器 IP)访问。
这种方式通常是人们在具有公有-私有子网的 AWS 环境中使用的。只有具有私有 IP 的实例才能从具有公共访问权限的实例访问。
因此,每当您想要访问您的私人机器时,您都需要先登录到公共机器。然后,您可以从那里登录到任何机器。