pam_ssh_agent_auth.so
在通过 ssh pubkey 进行身份验证时,我正在尝试配置为使用 sudo 为某些用户提供无密码体验。
我开始查看gentoo wiki,它建议使用
...
auth [success=3 default=ignore] pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
auth include system-auth <- 1st skipped
account include system-auth <- 2nd skippedm
session include system-auth <- 3rd skipped
... <- should continue from here
我在 Fedora 上,/etc/pam.d/sudo
看起来如下所示:
auth [success=3 default=ignore] pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
auth include system-auth
account include system-auth
password include system-auth
session optional pam_keyinit.so revoke
session required pam_limits.so
session include system-auth
我不是 PAM 专家,但是查看手册页时,我将其解释success=3
为“如果此规则成功,则跳过接下来的 3 行”,因此如果用户正确登录并且存在代理,我希望不会询问密码。
唉,这是行不通的:无论如何都在询问密码。
[success=3 default=ignore]
如果我只使用而不是使用,则身份验证按预期工作sufficient
- 我相信这基本上是相同的,在这种情况下我无法分辨出任何区别,因为模块堆栈由接下来的 3 个模块组成。
显然,使用[success=3 default=ignore]
和sufficient
不是一回事,因为我没有得到相同的结果。
有人可以向我解释实际差异是什么以及为什么前者在这种情况下不起作用?
谢谢