闲置后超时ssh会话?

PCI-DSS 3.0要求8.1.8规定:“如果一个会话空闲超过15分钟,要求用户重新authentication以重新激活terminal或会话。 同样在PCI-DSS 2.0要求8.5.15。

处理在bash提示符下空闲的ssh会话的第一个也是最明显的方法是强制执行一个只读的全局$TMOUT 900.不幸的是,这只包含了坐在bash提示符下的会话。 PCI规范的精神还需要杀死运行top / vim / etc的会话。

我曾经考虑过编写一个* / 1的cron作业来分析“/ usr / bin / w”的输出,并杀死关联的shell,但这似乎是一个钝器。 任何想法,将实际上做规范要求,只是lockingterminal? 我已经看vlock , 他们都似乎很好的自愿locking您的terminal,但我需要一个cron /守护进程的任务,将强制locking。

你可以把.bash_profile中的“exec screen -R”和.screenrc中的“idle 900 lockscreen”来解决这个问题吗? 如果屏幕会话仍然存在,会自动重新连接到屏幕会话,如果屏幕会话不存在,则创build一个新屏幕,但是如果屏幕闲置900秒,则locking屏幕。

我相信用户可以禁用闲置,但…

或者:只是简单的“执行屏幕”,并在“.screenrc”自动脱离,以便他们的会话,如果他们断开连接断开。

添加到您的sshdconfiguration中的以下内容将在15分钟不活动之后closuresSSH连接:

 ClientAliveInterval 900 ClientAliveCountMax 0 

sshd的IdleTimeout设置是否做你想要的? 我没有使用top来testing用户,但它应该适用于vim或不发送数据的东西。

在BSD下,我使用Michael P. Crider闲置

从描述引用

Idled是一个在机器上运行的守护进程,以关注当前用户。 如果用户闲置时间过长,或者login时间过长,或者login次数过多,都会提醒用户注意并正确login。

我想你也可以在Linux库find它。

这里的正确答案是

输出TMOUT = 900

在.bash_profile中

(调用屏幕并不是直接处理这个问题的方法)

http://linux.die.net/man/1/bash