Linux SSH身份验证(无PAM):如何知道用户是否通过密钥或密码登录?

Linux SSH身份验证(无PAM):如何知道用户是否通过密钥或密码登录?,linux,authentication,ssh,Linux,Authentication,Ssh,我想在用户SSH登录后做一些事情,这与使用公钥或密码不同。帕姆不会卷入我的案子 有一种方法程序可以从/var/log/messages或/var/log/auth.log检查SSH身份验证信息。但通常,普通用户无法读取这些文件。也许我可以使用chmod o+r,但听起来不安全 我还检查了一些SSH相关的环境变量,比如“SSH_CONNECTION”,但没有一个是有用的 有什么好办法吗?感谢您的帮助:)您不能在sshd本身之外这样做,在它里面,我知道的唯一方法是使用授权密钥来匹配特定密钥并执行特定

我想在用户SSH登录后做一些事情,这与使用公钥或密码不同。帕姆不会卷入我的案子

有一种方法程序可以从/var/log/messages或/var/log/auth.log检查SSH身份验证信息。但通常,普通用户无法读取这些文件。也许我可以使用chmod o+r,但听起来不安全

我还检查了一些SSH相关的环境变量,比如“SSH_CONNECTION”,但没有一个是有用的


有什么好办法吗?感谢您的帮助:)

您不能在
sshd
本身之外这样做,在它里面,我知道的唯一方法是使用
授权密钥来匹配特定密钥并执行特定命令。

现在唯一的方法是更改/etc/ssh/sshd\u config中的日志级别,并解析syslog输出日志,以找出使用了什么auth方法


LogLevel DEBUG已经确定了所需的信息,但是您可能也可以在详细级别中找到它。。。测试一下

谢谢。好吧,即使我知道如何实现它,我仍然需要处理scp、sftp等等。嗯,也许我走错方向了……除了PAM,SSH还可以支持任何其他身份验证方法?实际上,SSH只支持PAM(复杂的PAM堆栈可能会与之进行奇怪的交互);它非常喜欢自己做事情,这意味着它唯一的可扩展性是通过不稳定的PAM交互。