温馨提示×

Debian SSH如何限制用户访问

小樊
38
2025-11-29 01:27:33
栏目: 智能运维

在Debian系统中,可以通过配置SSH服务来限制用户访问。以下是一些常见的方法:

1. 使用 sshd_config 文件

编辑 /etc/ssh/sshd_config 文件,添加或修改以下配置项:

限制特定用户登录

AllowUsers user1 user2 user3

这将只允许 user1, user2, 和 user3 用户通过SSH登录。

限制特定IP地址访问

AllowUsers user1@192.168.1.1 user2@192.168.1.2

这将只允许来自 192.168.1.1192.168.1.2user1user2 用户通过SSH登录。

禁止root用户登录

PermitRootLogin no

这将禁止root用户通过SSH登录。

限制SSH端口

Port 2222

这将把SSH服务的默认端口从22改为2222。

2. 使用 DenyUsersDenyGroups

如果你需要更复杂的控制,可以使用 DenyUsersDenyGroups 配置项。

拒绝特定用户登录

DenyUsers user4 user5

这将拒绝 user4user5 用户通过SSH登录。

拒绝特定组用户登录

DenyGroups group1 group2

这将拒绝属于 group1group2 组的用户通过SSH登录。

3. 使用 Match 块进行更细粒度的控制

Match 块允许你根据特定条件应用配置。

根据IP地址限制用户

Match User user1
    AllowTcpForwarding no
    X11Forwarding no
    ForceCommand echo 'This account can only be used for SCP'

这将限制 user1 用户只能使用SCP进行文件传输,并且禁用了TCP和X11转发。

根据IP地址限制所有用户

Match Address 192.168.1.0/24
    AllowUsers user1 user2 user3
    DenyUsers user4 user5

这将允许来自 192.168.1.0/24 网段的 user1, user2, 和 user3 用户登录,并拒绝 user4user5 用户登录。

4. 重启SSH服务

在修改了 sshd_config 文件后,需要重启SSH服务以使更改生效:

sudo systemctl restart sshd

5. 使用防火墙限制访问

你还可以使用防火墙(如 ufwiptables)来进一步限制SSH访问。

使用 ufw

sudo ufw allow from 192.168.1.1 to any port 22
sudo ufw deny 22

这将允许来自 192.168.1.1 的SSH访问,并拒绝所有其他IP地址的SSH访问。

使用 iptables

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

这将允许来自 192.168.1.1 的SSH访问,并拒绝所有其他IP地址的SSH访问。

通过以上方法,你可以有效地限制Debian系统上的用户访问SSH服务。

0