如何在 Linux 中允许或拒绝对特定用户或组的 SSH 访问

本简要指南将引导您了解在 Linux 和 Unix 操作系统中允许或拒绝对特定用户或组进行 SSH 访问的步骤。

介绍

前段时间,我们讨论了如何 使用 Restricted shell 限制用户对 Linux 系统的访问. 一旦我们将用户置于受限模式,他们就不能做任何事情,只能做他们被允许做的事情。

当您希望允许特定用户仅执行一组特定命令时,这将很有帮助。

在本文中,我们将通过对 SSH 默认配置文件进行一些更改来启用或禁用用户或组的 SSH 访问。

允许或拒绝对 Linux 中特定用户或组的 SSH 访问

openSSH 默认配置文件有两个指令用于允许和拒绝对特定用户或组的 SSH 访问。

首先,让我们看看如何允许或启用对用户和组的 SSH 访问。 请注意,下面给出的所有命令都应该运行为 root 或者 sudo 用户。

1.允许SSH访问用户或组

要允许特定用户进行 SSH 访问,对于 example sk, 编辑 sshd_config 文件:

$ sudo vi /etc/ssh/sshd_config

“一世” 进入插入模式并添加或修改以下行:

AllowUsers sk

编辑 ssh 配置文件以允许 ssh 访问特定用户

将“sk”替换为您的用户名。 请注意 空格缩进 在“AllowUsers”和“sk”之间。 你应该使用 标签 代替 空格键. 含义 – 添加单词“AllowUsers”并点击 Tab 键,然后指定用户名。

您还可以指定多个用户,如下所示。

AllowUsers user1 user2

要允许整个组,请说 example root,添加/编辑以下行:

AllowGroups root

此设置将允许所有成员 "root" 组到 ssh 到 Linux 服务器。

ESC 退出插入模式并键入的键 :wq 保存并退出 SSH 配置文件。 重新启动 SSH 服务以使更改生效。

$ sudo systemctl restart sshd

现在,用户 sk 和所有成员 "root" 组被允许通过 ssh 进入你的 Linux 服务器。 其他用户(除了 sk 和 "root" group) 不允许通过 ssh 访问系统。

要验证它,请尝试以任何一个不允许的用户身份通过​​ ssh 进入 Linux 服务器:

$ ssh [email protected]

您将收到以下错误消息:

[email protected]'s password: 
Permission denied, please try again.

SSH 访问权限被拒绝

2. 拒绝用户或组的 SSH 访问

要禁用或拒绝对用户或组的 SSH 访问,您需要在远程服务器的 sshd_config 文件。

  1. 拒绝用户
  2. 拒绝组

要拒绝名为“sk”的特定用户的 SSH 访问,请编辑 sshd_config 文件:

$ sudo vi /etc/ssh/sshd_config

在 sshd_config 文件中添加/编辑以下行。

DenyUsers sk

确保空格缩进正确。 不要使用空格键。 按 T​​ab 键并添加用户名。

同样,要拒绝多个用户的 SSH 访问,请指定用空格分隔的用户名,如下所示。

DenyUsers user1 user2

同样,要拒绝对整个组的 SSH 访问,对于 example root, 添加:

DenyGroups root

Save 并退出 ssh 配置文件。 重新启动 ssh 服务以使更改生效。

$ sudo systemctl restart sshd

现在尝试从被阻止的用户帐户 ssh 到您的 Linux 机器,因为 example 斯克:

$ ssh [email protected]

您将收到以下消息:

[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password:

3.禁用SSH Root登录

就安全性而言,root ssh 访问被认为是一种不好的做法. 因此强烈建议禁用 SSH Root 用户登录以保护您的系统。

要禁用 root ssh 登录,请编辑 sshd_config 文件:

$ sudo vi /etc/ssh/sshd_config

找到以下行,取消注释,并将值设置为 no.

PermitRootLogin no

重新启动 SSH 服务以使更改立即生效:

$ sudo systemctl restart sshd

结论

您现在知道如何在 Linux 中授予和限制特定用户或组的 SSH 访问权限。 您还学习了如何在 Linux 中拒绝或禁用 SSH root 登录。 这是每个 Linux 推荐的安全实践之一 admin 应该在设置 Linux 服务器时实现。

相关阅读:

  • 禁用特定用户或组的 SSH 密码验证
  • 限制每个用户/组/系统的 SSH 登录次数
  • 如何通过 SSH 连接到 Linux 上的特定目录