温馨提示×

centos如何限制ssh用户

小樊
51
2026-09-05 20:31:19
栏目: 智能运维

在 CentOS 中“限制 SSH 用户”通常有几个常见场景,下面按最常见需求给你说明,你可以按需使用。


一、只允许指定用户登录 SSH(最常用)

编辑 SSH 配置文件:

vi /etc/ssh/sshd_config

添加或修改以下内容:

AllowUsers user1 user2

或限制某个用户不能登录:

DenyUsers user3

注意:

  • AllowUsers 和 DenyUsers 不要混用太多,容易出错
  • 修改后必须重启 SSH
systemctl restart sshd

二、禁止 root 直接登录(强烈推荐)

PermitRootLogin no

重启:

systemctl restart sshd

三、限制用户只能 SFTP,不能 SSH(安全隔离)

1. 创建用户

useradd -m sftpuser
passwd sftpuser

2. 修改 sshd_config

vi /etc/ssh/sshd_config

添加:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

3. 设置目录权限(非常重要)

chown root:root /home/sftpuser
chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload

重启 SSH:

systemctl restart sshd

四、限制用户登录时间 / 来源 IP(进阶)

1. 限制只能从某个 IP 登录

AllowUsers user1@192.168.1.100

2. 使用防火墙限制 SSH 端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
firewall-cmd --reload

五、锁定用户(禁止登录系统)

usermod -L username

解锁:

usermod -U username

六、查看当前 SSH 登录用户

who
w
last

总结(推荐安全组合)

✅ 禁止 root 登录
✅ 使用普通用户 + sudo
✅ 只允许指定用户 SSH
✅ 必要时使用 SFTP 隔离

如果你能具体说:

  • 是想 限制某个用户
  • 还是 限制登录方式
  • 还是 限制 IP / 时间

我可以给你更精确的配置示例。

0 踩