我试图阻止我的 ssh 用户同时打开多个会话,我的系统是 Ubuntu 11.10。
我以为设置是在/etc/security/limits.conf
我设置以下内容的地方:
betatest hard maxlogins 1
但是这没有任何效果,我可以使用用户帐户名 betatest 在不同的机器上多次登录。
使用sshd_config
PAM,并且两者的登录和 sshd 配置/etc/pam.d
都有以下设置:
session required pam_limits.so
如果有人知道如何限制每个用户的并发会话,我将非常感激您的帮助。
答案1
在我看来,从 pam_limits 的 MAN 页面(至少在 rhel/centos 上)来看,为所需用户添加 maxlogins 参数就可以了……但我还没有测试过:
NAME
pam_limits - PAM module to limit resources
SYNOPSIS
pam_limits.so [change_uid] [conf=/path/to/limits.conf] [debug] [utmp_early] [noaudit]
DESCRIPTION
The pam_limits PAM module sets limits on the system resources that can be obtained in a user-session. Users of uid=0 are affected by this limits, too.
By default limits are taken from the /etc/security/limits.conf config file. Then individual *.conf files from the /etc/security/limits.d/ directory are read.
答案2
每个用户的设置都非常棘手,你可能需要为此编写一些包装脚本。SSHD 配置有一个选项最大会话数它限制每个 IP 的连接数。
答案3
CentOS 7 的解决方案:
在您的 中/etc/ssh/sshd_config
,指定每个用户的设置,如下所示:
Match User foo
MaxSessions 100
测试您的配置并重新启动:
/usr/sbin/sshd -t && systemctl restart sshd