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

[ad_1]

本指南解释了如何在 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).

在 Linux 中禁用特定用户的 SSH 密码验证

禁用组的 SSH 密码验证

要为特定组禁用 SSH 密码验证,只需将用户名替换为 sshd_config 文件中的组名。

Match Group mygroup
    PasswordAuthentication no

将上述配置中的“mygroup”替换为您自己的组名。

不要忘记重新启动 ssh 服务以应用更改。

禁用多个用户的 SSH 密码认证

您可以通过使用逗号分隔的用户名来拒绝多个用户的 SSH 密码身份验证,如下所示:

Match User senthil,kumar
    PasswordAuthentication no

上面的示例配置将阻止用户“senthil”和“kumar”的 SSH 密码身份验证。

对除 root 用户之外的所有用户禁用 SSH 密码认证

在某些 Linux 系统中,您可能希望仅对“root”用户允许 SSH 密码验证,而对所有其他用户禁用它。 如果是这样,请在 sshd_config 文件的最后添加以下行:

Match User !root
    PasswordAuthentication no

通过主机或IP地址限制SSH密码认证

不仅仅是用户或组,我们还可以通过主机或 IP 地址拒绝 SSH 密码验证。

例如,以下示例将阻止来自包含 IP 地址的主机的 SSH 访问:

Match Address 192.168.225.37
       PasswordAuthentication no

要限制特定 IP 地址范围的 SSH 密码身份验证,请添加以下内容:

Match Address 192.168.225.*
      PasswordAuthentication no

此示例将使用来自包含主机名的主机的密码拒绝 SSH 访问:

Match Address hostname
       PasswordAuthentication no

有关更多详细信息,请参阅手册页。

$ man sshd_config

结论

在本指南中,我们讨论了如何在 Linux 中为特定用户或组禁用 SSH 密码身份验证。 我们进一步研究了如何禁用多个用户的 SSH 密码访问,如何限制除 root 用户之外的所有用户的 SSH 密码访问。 最后,我们学习了如何通过主机或 IP 地址限制 SSH 密码验证。

其他 SSH 相关指南:

  • 如何在 Linux 中配置基于 SSH 密钥的身份验证
  • 在 Linux 中允许或拒绝对特定用户或组的 SSH 访问
  • 限制每个用户/组/系统的 SSH 登录次数
  • 使用 TCP Wrappers 限制对 Linux 服务器的访问
  • 通过 SSH 在远程 Linux 系统上执行命令
  • 如何在 Linux 中创建 SSH 别名
  • 如何在 Linux 上通过 SSH 进入特定目录
  • SSLH – 为 HTTPS 和 SSH 共享同一个端口
  • ScanSSH – 快速的 SSH 服务器和开放代理扫描器
  • 如何使用 Rsync 通过 SSH 恢复部分传输的文件
  • 如何一次在多个远程系统上运行单个命令
  • DSH – 一次在多台主机上运行 Linux 命令
  • 如何阻止 SSH 会话在 Linux 中断开连接
  • 如何在 FreeBSD 上启用 SSH

希望这可以帮助。

允许或拒绝 SSH 访问允许 SSH 访问拒绝 SSH 访问限制 SSH 访问LinuxLinux 命令安全 ShellSecuritySSHSSH 密码身份验证

[ad_2]

Related Posts