我想知道如何(如果可能的话)为 Linux 中的用户创建动态身份验证。
服务器会定期更改用户密码,用户将使用程序(如令牌)来检索并输入正确的密码。
答案1
不完全是您正在寻找的内容,但我已经看到 OTPW 用于此类场景。它是一个完整的软件包,通过 PAM 模块与 Linux 系统集成。
摘抄
OTPW 软件包由一次性密码生成器
otpw-gen
和两个验证例程组成otpw_prepare()
,otpw_verify()
可以轻松添加到POSIX 系统等程序中login
。ftpd
对于支持可插入身份验证方法 (PAM) 接口的平台,还包含合适的包装器。以这种方式扩展的登录软件将允许通过不安全的网络线路进行相当安全的用户身份验证。用户携带纸质密码列表。该方案旨在有效防止论文列表被盗和争夺最后一个字母的攻击。一次性密码的加密哈希值存储在用户的主目录中以供验证。
根据您的情况,您需要按照该页面上详细说明 PAM 安装的说明进行操作。
摘抄
如果您的系统支持可插拔身份验证模块 [Mor01,XSSO],则只需编译共享库
pam_otpw.so
并将其复制到其他 PAM 模块所在的目录(通常在 Linux 下/lib/security/
)。然后,按照 PAM 系统管理员指南中的说明,编辑要在其中使用 OTPW 的应用程序的 PAM 配置文件。它pam_otpw.so
提供了身份验证和会话组件。身份验证组件要求并验证一次性密码,会话组件在每次成功登录后打印一条提醒,提醒您还剩下多少个未使用的密码。要在通过 Secure Shell 登录系统时使用这两个组件,您可能需要添加以下
/etc/pam.d/sshd
行auth required pam_otpw.so session optional pam_otpw.so
以 OpenSSH 3.4 为例,您需要确保您的版本已编译 PAM 支持,并且您必须添加以下
/etc/ssh/sshd_config
行UsePrivilegeSeparation no PAMAuthenticationViaKbdInt yes
要强制 OpenSSH 使用 PAM 身份验证(而不是它自己的基于主机或公钥方法,它通常首先尝试),请使用
“ssh -o PreferredAuthentications=keyboard-interactive”
.