覆盖 sshd_config 中的 DenyGroups

覆盖 sshd_config 中的 DenyGroups

我有一个sshd_config文件配置为不允许组中的用户nologin进入ssh此服务器 ( DenyGroups nologin)。虽然我在这个组中有几个用户,但我确实想为其中一个用户(我们称之为用户greg)覆盖此设置。

我尝试添加AllowUsers greg文件sshd_config,但似乎不起作用。可以这样做吗?

sshd_config 如下所示:

   AllowTcpForwarding no
   ClientAliveCountMax 1
   ClientAliveInterval 300
   LoginGraceTime 1m
   PermitRootLogin no
   Protocol 2 
   RSAAuthentication no
   Subsystem       sftp    /usr/libexec/openssh/sftp-server
   UsePAM yes
   X11Forwarding yes
   DenyGroups nologin
   LogLevel INFO
   MaxAuthTries 4
   IgnoreRhosts yes
   HostBasedAuthentication no
   PermitEmptyPasswords no
   PermitUserEnvironment no
   Ciphers aes128-ctr,aes192-ctr,aes256-ctr

添加“AllowUsers greg”(greg 是登录组的成员)不允许 greg 使用 ssh。

答案1

手册页sshd_config(5)描述了这些选项的行为,如下所示:

如果指定,仅允许/禁止其主要组或补充组列表或名称与其中一种模式匹配的用户/组登录。只有组名有效;数字组 ID 不被识别。默认情况下,所有组都允许登录。允许/拒绝指令按以下顺序处理:拒绝用户允许用户拒绝群组,最后允许群组

这暗示如果你只定义这两个选项,它应该对您有用。您可能使用了一些其他选项,这些选项会干扰您的设置。您可以发布您正在使用的整个配置吗?

答案2

对我来说这似乎很简单,只需将其gregnologin群组中删除即可。

答案3

你不能这样做,因为全部sshd在做出最终决定之前,指令会被评估。因此,尽管greg被允许AllowUsers,但后来被DenyGroups匹配他所在的组拒绝。手册在这里有些不具体,因为它没有提到所有指令都按照 Jakuje 描述的顺序进行评估,所以我在备用系统的 OpenSSH 5.2p1 中尝试了这一点。事实上,评估顺序应该是相反的(首先允许/拒绝组,然后允许/拒绝用户)。至少对我来说,这会更有意义。

相关内容