我正在为ssh服务编写PAM模块。我想知道如何在PAM模块中确定用户是否使用密码或密钥对自己进行身份验证。
感谢您的帮助,期待您的回答! ! !
答案 0 :(得分:1)
我的合理猜测是sshd仅使用pam_auth进行键盘交互式登录。对于基于密钥的登录,不会调用pam_auth。通过编写自己的PAM模块来记录或重新使用某些现有模块的详细日志记录,可以相当容易地验证。
请注意,我认为sshd仍会使用PAM会话,帐户等。
我不确定为什么你需要检测你想要检测的东西。如果我的猜测是正确的,那么应该很容易想出一个hacky方法,但在我看来你应该澄清这个问题。
事实上,https://stackoverflow.com/questions/7318754/pam-module-pam-prompt-conversation-function-problem似乎证实了我的猜测。 :)