限制每个用户/组/系统的 SSH 登录次数

您可能知道,我们可以通过同一用户多次通过 SSH 连接到远程 Linux 系统。 没有限制! 您可以简单地打开多个终端窗口(或终端中的多个选项卡)并通过同一用户帐户从每个选项卡启动多个 SSH 会话。 如果你想改变这种行为怎么办? 例如,您可能希望只允许一个用户使用一个活动的 SSH 会话。 这就是我们现在要看到的。 这个简短的教程解释了如何在 Linux 上限制每个用户、组或系统的 SSH 登录次数。

在大多数 Linux 发行版中,有一个文件名为 限制.conf 您可以在其中定义用户或用户组的最大并发 SSH 会话数。 如果特定用户尝试通过 SSH 登录系统的次数超过允许的 SSH 登录次数,他/她将被拒绝访问。

限制 Linux 上每个用户或组的 SSH 登录数

限制.conf 文件通常位于 /etc/安全/ RPM 和基于 DEB 的系统上的目录。

转到您的远程系统并编辑 /etc/security/limits.conf 文件与 sudo 或者 用户:

$ sudo nano /etc/security/limits.conf

限制并发 SSH 会话的数量 特定用户, 例如 ostechnix, 在末尾添加以下行:

ostechnix	hard	maxlogins	1

这里,

  • ostechnix – 我的 CentOS 8 服务器中的用户名。
  • maxlogins 1 – 此用户的最大登录次数。 就我而言,它是 1. 您可以增加此值以允许最大数量。 每个用户的活动 SSH 会话数。
  • 难的 – 执行硬限制。

如果你想限制一个 SSH 连接的数量 用户组,添加这个:

@mygroup	hard    maxlogins	1

代替 @我的组 用你的组名。 在这种情况下,mygroup 中的所有用户都不能多次通过 SSH 登录。

如果要限制系统中所有用户(全局)的 SSH 会话,请添加以下行:

*	hard    maxlogins	1

在这里, 星号 表示全局(即系统中的所有用户)。 一旦定义了每个用户/组或整个系统的最大 SSH 会话数,保存并 close 文件。

现在尝试使用同一用户多次 SSH 到系统。 您将看到如下所示的错误消息。

Too many logins for 'ostechnix'. Last login: Tue Feb 18 17:12:09 2020 from 192.168.225.37 Connection to 192.168.225.52 closed.