OpenSSH(我猜可能还有其他的)在建立连接时会检查用户是否存在并且具有有效的访问凭据。
OpenSSH(或任何其他生产质量的 FOSS ssh 服务器)是否可以配置为不时重新检查连接的有效性?例如,检查用户是否仍然存在并且仍然允许通过 ssh 连接?或者检查用于连接的密钥是否对该用户仍然有效?
答案1
据我所知,身份验证是守门人,您的凭据仅在进入时进行验证,并且您的结果环境将被缓存,只要您的会话保持有效,它就会保持有效。PAM
模块也不需要会话期间重新验证。
您需要主动终止特定用户拥有的进程,例如pkill -9 -U UID
在您撤销他们的帐户之后。
答案2
没有现成的方法可以做到这一点。最基本的解决方案是 HBruijn 建议的。
然而,如果你有类似集中式身份验证的东西,那当然可能不起作用,因为用户不是本地人,而终止需要分布式进行。
我将在 PAM 会话中使用 pam_exec,并在后台运行一个任务来执行检查和终止。
session optional pam_exec.so quiet /usr/local/bin/my-permisions-checking-binary
。