我的目标是在从本地网络外部连接时实现 2FA(密码 + OTP)SSH 登录,而从本地网络(192.168.1.0/24)使用“仅密码”SSH 登录。
目前,我有第一位(密码+OTP)并使用以下配置:
我的/etc/ssh/sshd_config
:
KbdInteractiveAuthentication yes
UsePAM yes
我的/etc/pam.d/sshd
:
#@include common-auth
auth required pam_unix.so nullok_secure
auth required pam_oath.so usersfile=/etc/users.oath window=30 digits=6
如何从本地网络获取第二位(仅密码,无 OTP)?
提前致谢!
PAM 配置的第二个字段支持扩展语法:
[result=action…]
。如果指定一个数字作为操作,则表示“跳过此数量的模块”,例如,[success=1]
如果此模块返回 PAM_SUCCESS,则将跳过下一个模块。因此,您可以采用检查 IP 地址的现有模块 - pam_access - 并像这样集成它,这样它本身就不会影响最终结果,而是导致跳过 pam_oath: