[ad_1]
本指南解释了如何在 Linux 和 Unix 操作系统中为特定用户或组禁用 SSH 密码验证。
请注意,我们不会完全禁用对用户或组的 SSH 访问。 相反,我们将仅禁用 SSH 密码身份验证。
用户仍然可以使用其他身份验证方法通过 SSH 访问系统,例如基于 SSH 密钥的身份验证。
内容
禁用特定用户或组的 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
请注意 Match 有效“直到另一个 Match 行或文件末尾”。 如果某个关键字出现在多个满足的 Match 块中,则仅应用该关键字的第一个实例。
根据上面的示例,我们已禁用名为“senthil”的用户的 SSH 密码身份验证。 用您自己的用户名替换“senthil”。 Save 和 close 文件。 重启 ssh 服务使更改生效:
$ sudo systemctl restart ssh
现在尝试通过 SSH 以用户“senthil”的身份登录:
$ ssh [email protected]
您将看到以下错误消息:
[email protected]: Permission denied (publickey).
禁用组的 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]