禁用特定用户或组的 SSH 密码验证

本指南解释了如何在 Linux 和 Unix 操作系统中为特定用户或组禁用 SSH 密码验证。

请注意,我们不会完全禁用对用户或组的 SSH 访问。 相反,我们将仅禁用 SSH 密码身份验证。

用户仍然可以使用其他身份验证方法通过 SSH 访问系统,例如基于 SSH 密钥的身份验证。

内容

  1. 禁用特定用户或组的 SSH 密码验证
    1. 禁用组的 SSH 密码验证
    2. 禁用多个用户的 SSH 密码认证
    3. 对除 root 用户之外的所有用户禁用 SSH 密码认证
    4. 通过主机或IP地址限制SSH密码认证
  2. 结论

禁用特定用户或组的 SSH 密码验证

我们可以允许或拒绝用户和/或整个组的 SSH 访问使用 “/etc/ssh/sshd_config” Linux 中的文件。 sshd_config 文件有一个名为的参数 “比赛” 这将帮助您禁用用户或组的 SSH 密码身份验证。

让我们首先看看如何禁用特定用户的密码验证。

使用您喜欢的编辑器以 root 或 sudo 用户:

$ sudo nano /etc/ssh/sshd_config

首先,通过注释掉以下行来删除默认身份验证方法:

#PasswordAuthentication yes

接下来,在最后添加以下几行:

[...] Match User senthil     PasswordAuthentication no

禁用特定用户的 SSH 密码验证

请注意 Match 有效“直到另一个 Match 行或文件末尾”。 如果某个关键字出现在多个满足的 Match 块中,则仅应用该关键字的第一个实例。

根据上面的示例,我们已禁用名为“senthil”的用户的 SSH 密码身份验证。 用您自己的用户名替换“senthil”。 Save 和 close 文件。 重启 ssh 服务使更改生效:

$ sudo systemctl restart ssh

现在尝试通过 SSH 以用户“senthil”的身份登录:

$ ssh [email protected]

您将看到以下错误消息:

[email protected]: Permission denied (publickey).