我正在尝试/etc/ssh/sshd_config在我的专用 debian7 服务器上使用AllowUsers和AllowGroups. 但是我似乎无法让两者一起工作。
testuser。该用户位于名为 的组中ssh-users:
$ groups testuser
testuser : testuser ssh-users
Run Code Online (Sandbox Code Playgroud)testuser正在尝试通过连接ssh testuser@<server_ip>并输入他们的密码。
sshd_config可以在这里找到:http : //pastebin.com/iZvVDFKL - 我认为基本上我对默认所做的唯一更改是:
PermitRootLogin noAllowUsers(实际用户名在我的服务器上不同)service ssh restart每次修改后都会运行sshd_config。testuser 设置时可以连接AllowUsers:
AllowUsers user1 user2 testuser
Run Code Online (Sandbox Code Playgroud)testuser可以不设置连接时,AllowGroups其组:
AllowUsers user1 user2
AllowGroups ssh-users
Run Code Online (Sandbox Code Playgroud)
其结果在Permission denied, please try again.当testuser在SSH密码提示输入他们的密码。
AllowUsers覆盖AllowGroups?AllowUsers什么?理想情况下,我希望ssh-users将来能够将用户添加到组中而无需sshd_config再次接触。Jef*_*eOS 29
是的,AllowUsers优先于AllowGroups. 如果指定,则只有与 中指定的模式匹配的用户才能AllowUsers连接到 SSHD 实例。
根据手册sshd_config 页:
的允许/拒绝的指令在下列顺序处理:
DenyUsers,AllowUsers,DenyGroups,和最后AllowGroups。
因此,您的问题的解决方案可能是使用一种或另一种方式,如果组是您管理用户的首选方式,则可能使用组访问指令。
小智 8
这是我们发现有效的解决方案:
AllowUsers user1 user2
Match group ssh-users
AllowUsers *
Run Code Online (Sandbox Code Playgroud)
杰夫的回答涵盖详见问题的细节,但我发现这个问题,希望使用AllowUsers和AllowGroups略有不同的场景。我想限制来自特定子网的组 (ssh) 中的用户的传入连接。
sshd_config中的连接规则是一个过滤器 - 随着每条附加规则的应用,只能减少可接受的用户集。PATTERNS在ssh_config(5) 中解释这些规则的形式。
此外,根据AllowUsers部分sshd_config:
如果模式采用 USER@HOST 的形式,则分别检查 USER 和 HOST,将登录限制为来自特定主机的特定用户。HOST 标准可能还包含要以 CIDR 地址/掩码格式匹配的地址。
AllowGroups 不接受 USER@HOST 表单。
因此,要接受 1) ssh 组中的用户和 2) 来自特定子网/主机的用户:
AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh
Run Code Online (Sandbox Code Playgroud)