我遇到了这样的情况:我必须通过 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.conf
login.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
,并且我相信有一种方法可以限制服务的实例数量。留给读者的练习(或添加包含详细信息的评论!)。