如何设置SSH访问的时间限制?
 
解决方法:

如果要启用SSH远程登录时间的限制,需要设置可插拔认证模块(PAM)。在时间限制方面的模块是pam_time.so。

需要在下面的文件中增加该模块:

/lib/security/pam_time.so

下面是针对该文件进行修改的例子:

#%PAM-1.0
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
account    required     pam_time.so
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    required     pam_limits.so
session    optional     pam_console.so

然后剩下的配置就在/etc/security/time.conf文件中,该文件的语法如下:

services;ttys;users;times

service 由pam进行控制的服务的列表 tty 开启服务的虚拟终端 users 使用服务的用户 time 该字段的格式是日期/时间,对日期的定义通常是两个字符。例如:MoTuSa就是周一、周二和周三。 可接受的两个字符的组合是Mo Tu We Th Fr Sa Su Wk Wd Al

同时,ALFr指除了星期五之外的所有日期,另外日期/时间的格式也可以通过在前面加“!”前缀表示取反值。而时间范围的部分是通过横线所隔开的起始时间和中止时间,具体时间格式也是两字符的HHMM表示小时和分钟。如果终止时间比起始时间小,那么系统会识别终止时间在第二天。

所以现在要限制用户jlim在周一、周三和周六的早上八点到下午五点使用ssh登录,可以参照下面的例子:

sshd;*;jlim;MoWeWk0800-1700

对该文件的修改会在任何用户重新登录的时候生效。注意要测试对该限制的修改,以防错误锁定用户甚至是root用户。