Linux 为特定的用户或用户组启用或禁用 SSH的方法

1. 简介

SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地远程登录计算机。在Linux中,SSH是一种常见的远程管理方式,允许用户通过命令行界面远程登录并执行命令。然而,有时候我们需要限制某个特定用户或用户组对SSH的访问权限,本文将介绍如何针对特定用户或用户组启用或禁用SSH。

2. 方法1:使用配置文件

SSH服务器的配置文件位于/etc/ssh/sshd_config,使用此配置文件可以对SSH进行相应的设置。以下是通过配置文件启用或禁用SSH的方法:

2.1 打开配置文件

sudo nano /etc/ssh/sshd_config

使用sudo命令以管理员权限打开配置文件。

2.2 启用或禁用SSH

在打开的配置文件中,找到以下行:

# AllowUsers

在这一行下面,使用AllowUsers关键字启用或禁用SSH访问。例如,如果要禁用用户user1和user2对SSH的访问,可以在下面添加一行:

AllowUsers !user1 !user2

保存配置文件并退出。

2.3 重新启动SSH服务

sudo systemctl restart sshd

使用以上命令重新启动SSH服务以使配置更改生效。

3. 方法2:使用PAM模块

PAM(Pluggable Authentication Modules)是用于认证和授权的模块化系统。通过在PAM配置中修改,可以对SSH进行特定用户或用户组的访问控制。以下是使用PAM模块启用或禁用SSH的方法:

3.1 打开配置文件

sudo nano /etc/pam.d/sshd

使用sudo命令以管理员权限打开配置文件。

3.2 启用或禁用SSH

在打开的配置文件中,找到以下行:

account required pam_access.so

注释掉这一行,然后添加以下行:

account required pam_access.so accessfile=/etc/security/sshd_access.conf

保存配置文件并退出。

3.3 创建访问控制文件

sudo nano /etc/security/sshd_access.conf

在打开的文件中,添加以下行:

-: user1 : ALL

-: user2 : ALL

替换user1和user2为实际要禁用SSH的用户。

3.4 重新启动SSH服务

sudo systemctl restart sshd

使用以上命令重新启动SSH服务以使配置更改生效。

4. 方法3:使用防火墙

还可以使用防火墙规则来限制特定用户或用户组对SSH的访问。以下是使用防火墙禁用SSH的方法:

4.1 查看已有规则

sudo iptables -L

使用以上命令查看当前防火墙规则。

4.2 禁用SSH

sudo iptables -A INPUT -p tcp --dport 22 -m owner --uid-owner user1 -j DROP

使用以上命令禁用SSH对于用户user1的访问。可以根据需要调整此命令以禁用其他用户或用户组。

4.3 保存规则

sudo iptables-save | sudo tee /etc/sysconfig/iptables

使用以上命令将规则保存到/etc/sysconfig/iptables文件中。

4.4 重新启动防火墙

sudo systemctl restart iptables

使用以上命令重新启动防火墙以使配置更改生效。

5. 总结

本文介绍了三种方法来启用或禁用特定用户或用户组对SSH的访问权限。使用配置文件、PAM模块或防火墙规则都可以实现对SSH的访问控制。根据具体需求和环境选择合适的方法,并注意在修改配置或规则之后重新启动SSH服务或防火墙以使更改生效。

操作系统标签