方法 1: 修改 SSH 配置文件
你可以通过修改 SSH 的配置文件 /etc/ssh/sshd_config
来禁止特定用户或用户组通过 SSH 登录。
1. 禁止特定用户
打开 /etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
在文件中添加以下行:
DenyUsers username
将 username
替换为你想禁止 SSH 登录的用户的用户名。如果要禁止多个用户,可以用空格分隔:
DenyUsers user1 user2 user3
2. 禁止特定用户组
如果你想禁止一个整个用户组的 SSH 登录,可以使用 DenyGroups
指令:
DenyGroups groupname
将 groupname
替换为你想禁止 SSH 登录的用户组名称。你也可以指定多个组,用空格分隔:
DenyGroups group1 group2 group3
3. 重启 SSH 服务
在修改完 sshd_config
文件后,需要重新启动 SSH 服务以使更改生效:
sudo systemctl restart sshd
或者在某些系统上可能需要使用:
sudo service sshd restart
方法 2: 禁用 Shell 访问
你还可以通过将用户的默认 shell 修改为一个不可用的 shell 来阻止他们的 SSH 登录。
1. 设置不可用的 shell
你可以将用户的 shell 修改为 /usr/sbin/nologin
或 /bin/false
:
sudo usermod -s /usr/sbin/nologin username
或者:
sudo usermod -s /bin/false username
这会阻止用户通过 SSH 登录,同时用户仍然可以使用其他非 shell 的服务。
方法 3: 使用 PAM 限制
PAM(Pluggable Authentication Modules)是 Linux 系统中的一个可插入身份验证模块,你可以通过 PAM 来限制用户的 SSH 登录权限。
1. 编辑 PAM SSH 配置
打开 /etc/security/sshd.conf
(如果文件不存在,请创建):
sudo nano /etc/security/sshd.conf
添加以下内容来禁止特定用户:
sshd : username : deny
如果你想禁止多个用户,可以分别添加多行或用逗号分隔用户名:
sshd : user1 : deny
sshd : user2 : deny
方法 4: 修改 /etc/hosts.deny
你可以通过编辑 /etc/hosts.deny
文件来拒绝特定用户的 SSH 访问。
打开 /etc/hosts.deny
文件:
sudo nano /etc/hosts.deny
添加以下内容:
sshd : username@ALL
将 username
替换为你想禁止 SSH 登录的用户。这个方法通过拒绝连接来阻止用户访问 SSH 服务。
方法 5: 禁用用户账号
如果你不再希望某个用户使用任何服务,包括 SSH 登录,可以禁用该用户的账号。
1. 锁定用户账户
sudo usermod -L username
这个命令会锁定用户的账号,用户将无法通过 SSH 或其他方式登录系统。
2. 禁用用户账户
sudo passwd -l username
这个命令会禁用用户的密码登录,用户将无法使用密码进行 SSH 登录,但如果使用密钥认证,仍然可以登录。
通过这些方法,你可以根据需要选择最适合的方式来禁止某个用户的 SSH 登录权限。