如何允许或拒绝 sshd 服务器上的特定用户或组进行 ssh 登录?
(我意识到 SE 有类似的问题,但我找不到任何针对这个特定问题的问题。我发现的所有其他问题似乎都混淆了其他情况。)
答案1
更新 sshd 配置
到否定用户 ssh 登录,将其添加到 sshd 配置文件的末尾(/etc/ssh/sshd_config
在 Linux/Unix/BSD 中):
DenyUsers theusername
对于团体:
DenyGroups thegroupname
重启 sshd 服务
然后重启sshd
服务。以下在Ubuntu 18.04上有效:
systemctl restart sshd
更多细节
可以分别添加以空格分隔的用户名或组名列表。
和指令AllowUsers
的AllowGroups
作用相反。
摘录自sshd_config 手册页:
拒绝群组
此关键字后可以跟一组组名模式列表,以空格分隔。主组或补充组列表与其中一个模式匹配的用户不允许登录。只有组名有效;数字组 ID 不被识别。默认情况下,所有组都允许登录。允许/拒绝指令按以下顺序处理:拒绝用户,允许用户, 拒绝群组,最后允许群组。
拒绝用户
此关键字后面可以跟一串用户名模式,以空格分隔。与其中一个模式匹配的用户名不允许登录。只有用户名才有效;数字用户 ID 不被识别。默认情况下,所有用户都允许登录。如果模式采用 USER@HOST 形式,则分别检查 USER 和 HOST,将登录限制为特定主机的特定用户。允许/拒绝指令按以下顺序处理: 拒绝用户,允许用户,拒绝群组,最后允许群组。
看图案在ssh_配置(5)获取更多有关模式的信息。
答案2
另一种方法是使用 access.conf。
首先,您需要在sshd 配置文件添加以下行:
required pam_access.so
然后你可以编辑/etc/security/access.conf,并通过为每个用户/组添加以下行来删除其访问权限:
-:<user or group>:ALL