禁止非 root 用户登录

有时,允许所有用户远程登录系统可能存在安全风险。
有很多方法可以限制谁可以远程访问系统。
我们可以使用 PAM、IPwrapers 或者 IPtables 等。
但是,限制谁可以通过 SSH 访问系统的最简单方法之一是配置 SSH 守护程序。

指令 AllowUsers 可以在 /etc/ssh/sshd_config 中配置。
该指令后面可以跟用空格分隔的用户名模式列表。
如果指定,则仅允许这些用户名登录。

AllowUsers [username]

其中 [username] 是我们要允许的用户名。

例如,要允许 ssh 登录用户 john 和 teena 并为其他用户禁用它,请将 AllowUsers 指令修改为:

AllowUsers john teena

重新启动 sshd 服务以使更改生效:

# service sshd restart

禁用root直接通过ssh登录

  1. 使用文本编辑器编辑 /etc/ssh/sshd_config 文件并找到以下行:
#PermitRootLogin yes
  1. 将 yes 更改为 no 并删除该行开头的“#”,使其显示为:
PermitRootLogin no
  1. 重启sshd服务:
# service sshd restart

解决方法

本文的操作过程将不允许直接 root 登录,因此当我们使用 SSH 连接时,我们需要先以普通用户身份登录,然后 su 才能获得 root 访问权限。

允许/禁止组 ssh 登录

为了限制组,在文件 /etc/ssh/sshd_config 中使用了 AllowGroups 和 DenyGroups 选项。
所述选项将允许或者禁止其主要组或者补充组与组模式之一匹配的用户。

CentOS/RHEL:如何禁用/启用用户 ssh 登录
更多: zhilu jiaocheng

启用 root 直接ssh登录

要再次启用 root 登录,请按照完全相反的过程进行操作。

  1. 使用文本编辑器编辑 /etc/ssh/sshd_config 文件并找到以下行:
#PermitRootLogin no
  1. 将 no 更改为 yes 或者简单地将“#”放在行首,使其显示为:
#PermitRootLogin yes
  1. 重启sshd服务:
# service sshd restart

问题

SSH 如何禁止非 root 用户登录?
SSH 如何禁止 root 用户直接登录?

日期:2020-09-17 00:12:14 来源:oir作者:oir