如何限制每个用户的 ssh 并发会话?

如何限制每个用户的 ssh 并发会话?

我试图阻止我的 ssh 用户同时打开多个会话,我的系统是 Ubuntu 11.10。

我以为设置是在/etc/security/limits.conf我设置以下内容的地方:

betatest hard maxlogins 1

但是这没有任何效果,我可以使用用户帐户名 betatest 在不同的机器上多次登录。

使用sshd_configPAM,并且两者的登录和 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

相关内容