如何允许或拒绝 sshd 服务器上的特定用户或组进行 ssh 登录?

如何允许或拒绝 sshd 服务器上的特定用户或组进行 ssh 登录?

如何允许或拒绝 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

更多细节

可以分别添加以空格分隔的用户名或组名列表。

和指令AllowUsersAllowGroups作用相反。

摘录自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

相关内容