我们有可以生成令牌的设备。所以我们可以使用带密码的令牌来执行两因素身份验证。有许多方法可以实现此类系统以增强安全性。我知道的两个之一是修改 open-ssh 客户端,另一个是开发 PAM(可插入身份验证模块)模块。
还有其他方法吗?考虑到易于部署,哪种方法最好(注意:不考虑开发的复杂性)?身份验证将主要由服务器的 ssh 守护进程用于对用户进行身份验证以进行登录。
我们有可以生成令牌的设备。所以我们可以使用带密码的令牌来执行两因素身份验证。有许多方法可以实现此类系统以增强安全性。我知道的两个之一是修改 open-ssh 客户端,另一个是开发 PAM(可插入身份验证模块)模块。
还有其他方法吗?考虑到易于部署,哪种方法最好(注意:不考虑开发的复杂性)?身份验证将主要由服务器的 ssh 守护进程用于对用户进行身份验证以进行登录。
我从早期的 2.x 版本开始就使用 IPA(LDAP、Kerberos、SSSD),而且再高兴不过了。关于 2FA 和 OpenSSH,这里是我的 sshd_config 的相关片段:
AllowGroups ipausers
GSSAPIAuthentication yes
PasswordAuthentication no
PubkeyAuthentication yes
RequiredAuthentications2 publickey,gssapi-with-mic
从 OpenSSH-6.2 开始,实现 SSH 的 Red Hat 补丁RequiredAuthentications2
已被包含在上游或被取代:
- sshd(8):通过 AuthenticationMethods 选项在 SSH 协议 2 中添加了对多个所需身份验证的支持。此选项列出一个或多个以逗号分隔的身份验证方法名称列表。需要成功完成任何列表中的所有方法才能完成身份验证。例如,这允许要求用户在提供密码验证之前必须通过公钥或 GSSAPI 进行验证。
就个人而言,我一直非常喜欢使用 RADIUS 来支持两因素身份验证。不确定您拥有哪种令牌,但我认为 RSA 令牌与 RADIUS 很好地集成在一起,尽管我以前没有亲自配置过这样的系统。这是一个既定的标准,也应该很容易与任何严肃的 SSH 服务器集成。
传统上来说有3种形式的认证
因此,如果您有一个令牌同步设备,我假设我们正在谈论 (2),因为当我登录到修改后的 ssh 服务器时,它会向我发送一个密码短语,我将其输入到我的手持设备/令牌设备中与中央服务器同步并给我一个 OTP。我用我的原始密码输入这个来登录。
我在修改 ssh 以在两个级别上对用户进行身份验证然后确保不存在竞争条件时看到的复杂性。
有许多选项可用于保护对您系统的 SSH 访问。选择基于标准安全协议和框架的东西将使您易于管理和扩展。
PAM 是一个不错的选择。查看我们的服务 LoginTC。免费试用/使用。
使用 PAM 进行两因素身份验证:https ://www.logintc.com/docs/connectors/unix-ssh.html 。