SSH 连接成功后执行命令

SSH 连接成功后执行命令

我希望每当用户建立与 sshd 的连接时执行一个命令。

我尝试设置命令/etc/ssh/sshrc并设置PermitUserRC no/etc/ssh/sshd_config防止用户覆盖它。

但是,这种方法不适用于-N通常用于端口转发连接的选项的连接。

我也尝试了描述的解决方案https://askubuntu.com/a/724796/484694,但这也会在登录尝试失败时执行命令,这不是我想要的。

有没有什么方法可以使用 sshd 实现所需的行为?

答案1

您可以使用询问 Ubuntu 答案使用pam_exec.so,只需在sessionPAM 配置部分使用它而不是auth,因为session只有在身份验证成功后才会执行模块。

将其添加到您的/etc/pam.d/sshd

session optional pam_exec.so /path/to/some/script

在执行的脚本中,您可以使用环境变量来$PAM_USER访问有关正在连接的用户的信息。环境变量尤其$PAM_TYPE适用于检查脚本中会话是否已打开或关闭。

请参阅手册页pam_exec(8)更多细节。

相关内容