单个 Linux 机器上的 SSH 连接数

单个 Linux 机器上的 SSH 连接数

我遇到了这样的情况:我必须通过 puTTY 访问 Linux 机器。我对 SSH 进行了各种尝试,但未能连接到该机器。然后我意识到我的同事正在以 root 用户身份访问同一台 Linux 机器,而我也想以 root 用户身份访问。我要求他注销,以便我可以以 root 用户身份登录。有没有办法限制Linux操作系统上的SSH登录次数?这是某种区分基于 Windows 的操作系统与基于 Linux 的操作系统的安全功能吗?

答案1

/etc/security/limits.conf你可能有像这样设置的限制

root hard maxlogins 1

如果需要,将限制 (1) 更改为更高的值。

答案2

是的,可以限制并发登录会话的数量,尽管大多数 Linux 发行版在其默认设置中并未施加此类限制。

Linux 在设计上是适当的多用户系统,通常情况下,同一用户拥有多个并发 SSH 会话不会有任何问题。

SSH 服务器可以通过MaxSessions配置文件中的选项施加此类限制。通过 PAM,您可以施加此类限制,正如其他人已经指出的那样。

答案3

试图说服独立sshd守护进程限制会话数量充满了漏洞。诸如MaxSessions限制OP所谈论的内容之外的东西之类的事情。在 linux 上会被忽略(在 FreeBSD 上也类似)sshd,除非您正确配置以通过 PAM 路由所有传入会话,并使用正确配置的 PAM 模块首先检查 limit.conf 等内容。很难让它正常工作。limits.conflogin.conf

另一方面,如果您不作为独立守护进程启动,那么您可以使用按需sshd生成的“事物”中的限制功能。sshd

例如,inetd具有xinetd连接限制功能(通常默认不对分叉子项的数量实施任何限制)。在经典中inetd,它被称为“max-child”。使用xinetd,查找instances配置旋钮。例如inetd样式:

ssh  stream  tcp  nowait/3  root  /usr/sbin/sshd  sshd -i -4

这将并发 ssh 连接数限制为 3。

对于那些如此倾向于的人,systemd可以替换 的功能inetd,并且我相信有一种方法可以限制服务的实例数量。留给读者的练习(或添加包含详细信息的评论!)。

相关内容