如何在sshd_config中同时使用AllowGroups和AllowUsers?

我试图在AllowUsersAllowGroups专用debian7服务器上修改/etc/ssh/sshd_config 。 但是,我似乎无法同时合作。


安装程序

  • 有一个名为testuser的用户。
  • 该用户位于一个名为ssh-users的组中:

     $ groups testuser testuser : testuser ssh-users 
  • testuser试图通过ssh testuser@<server_ip>并input密码。

  • 我的sshd_config可以在这里find: http : //pastebin.com/iZvVDFKL – 我认为基本上我从默认的唯一变化是:
    • 设置PermitRootLogin no
    • 并用AllowUsers添加两个用户(我的服务器上的实际用户名不同)
  • 每次修改sshd_config后都会运行service ssh restart

问题


问题

  • AllowUsers是否会覆盖AllowGroups
  • 什么是最好的方法来解决这个问题,而不需要手动添加用户名到AllowUsers ? 理想情况下,我希望能够将用户添加到ssh-users组中,而不必再次触摸sshd_config

是的, AllowUsers先于AllowGroups 。 如果指定,则只有与AllowUsers指定的模式匹配的用户AllowUsers可以连接到SSHD实例。

根据sshd_config 页 :

allow / deny指令按以下顺序处理: DenyUsersAllowUsersAllowGroups ,最后AllowGroups

所以,对于你的问题的解决scheme可能是使用一个或另一个,如果组是你的首选pipe理用户的方式,可能是组访问指令。

杰夫的答案涵盖了详细的问题的具体问题,但我发现这个问题看起来在稍微不同的情况下使用AllowUsersAllowGroups 。 我想限制传入连接到来自特定子网的组(ssh)中的用户。

sshd_config中的连接规则是一个filter – 随着每个附加规则的应用,可接受用户的集合只能被减less。 ssh_config(5)中的PATTERNS解释了这些规则的forms。

另外,根据sshd_configAllowUsers部分:

如果模式采用USER @ HOSTforms,则分别检查USER和HOST,限制来自特定主机的特定用户的login。 HOST标准还可以包含地址以匹配CIDR地址/ masklen格式。

AllowGroups不接受USER @ HOST的forms。

所以,接受用户1)在ssh组和2)从特定的子网/主机:

 AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4 AllowGroups ssh