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


28

我试图修改/etc/ssh/sshd_config与我的两个专用debian7服务器AllowUsersAllowGroups。但是我似乎无法让两者一起工作。


设置

  • 有一个叫的用户testuser
  • 该用户在一个名为的组中ssh-users

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuser正在尝试通过ssh testuser@<server_ip>并输入他们的密码进行连接。

  • 我的信息sshd_config可以在这里找到:http : //pastebin.com/iZvVDFKL-我认为基本上我对默认设置所做的唯一更改是:
    • 设置 PermitRootLogin no
    • 并添加两个用户AllowUsers(我的服务器上的实际用户名不同)
  • service ssh restart修改后每次运行sshd_config

问题

  • testuser 设置为时可以连接AllowUsers

    AllowUsers user1 user2 testuser
    
  • testuser可以设置连接时,AllowGroups其组:

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    其结果在Permission denied, please try again.testuser在SSH密码提示输入他们的密码。


问题

  • 是否AllowUsers覆盖AllowGroups
  • 在不手动将用户名添加到的情况下解决此问题的最佳方法是AllowUsers什么?理想情况下,我希望以后可以仅将用户添加到ssh-users组中,而无需sshd_config再次触摸。

5
Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again.-那么为什么要使用AllowUsers?只需将每个人都放在组中即可。
Zoredache

Answers:


24

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

根据sshd_config 手册页

的允许/拒绝的指令在下列顺序处理: DenyUsersAllowUsersDenyGroups,和最后AllowGroups

因此,解决问题的方法可能是使用一个或另一个,如果组是您管理用户的首选方式,则可能使用组访问指令。


那会AllowGroups user1 user2 ssh-users工作吗?我更希望在测试之前确认您的确认,因为我在不小心删除自己的ssh特权并不得不寻求支持才能对其进行修复之前就已经进行了确认。怎么样Match块?我在这里寻求建议,因为尽管我已经看过手册页,但我没有直觉/经验来知道它在实践中如何工作。例如,按照我认为的处理顺序,由于AllowGroups在AllowUsers之后,它将在处理时覆盖它,但是我的直觉是错误的:)
Johannes

2
如果所有这三个都是系统上的组,则它应该可以工作。如果user1和user2只是用户,则可以将它们添加到ssh-users,并通过AllowGroups ssh-users获得。
Jeff-Inventor ChromeOS

@Johannes在测试这种东西时,请确保已在计算机上打开了外壳。重新启动sshd不会中断您的会话,并且如果您无法打开一个新会话,则可以修复现有会话中的混乱情况。
Jean-Bernard Jansen

6

杰夫的回答涵盖详见问题的细节,但我发现这个问题,希望使用AllowUsersAllowGroups略有不同的场景。我想将传入连接限制为来自特定子网的组(ssh)中的用户。

sshd_config中的连接规则是一个过滤器-当应用每个附加规则时,只能减少可接受用户的数量。PATTERNSssh_config中(5)说明的那些规则的形式。

此外,根据以下AllowUsers部分sshd_config

如果该模式采用USER @ HOST的形式,则分别检查USER和HOST,将登录名限制为来自特定主机的特定用户。主机标准可能还包含以CIDR地址/掩码格式匹配的地址。

AllowGroups 不接受USER @ HOST表单。

因此,要接受用户1)ssh组中的用户和2)来自特定子网/主机的用户:

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

AllowGroups doesn't accept the USER@HOST form. 不知道您的意思是什么,当然也不是配置文件或文档所说的。允许组绝对允许您使用ssh username@example.com登录。
AndrewD

1
@AndrewD AllowGroups仅接受组名-例如,您不能这样做AllowGroups ssh@example.com。HOST是您的源泉。
bjacobowski18年

3

这是我们发现有效的解决方案:

AllowUsers user1 user2
Match group ssh-users
    AllowUsers *
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.