linux中ssh仅允许指定用户登录需配置/etc/ssh/sshd_config的allowusers指令,支持用户名、用户名@ipv4、用户名@ipv6格式,优先级高于allowgroups,须配合permitrootlogin no、禁用密码认证及密钥权限检查,并通过sshd -t校验后reload服务验证。

Linux 系统中让 SSH 仅允许指定用户远程登录,核心是修改 /etc/ssh/sshd_config 文件,配合 AllowUsers 指令实现白名单控制。操作简单但需谨慎,避免配置错误导致自己被锁出。
启用 AllowUsers 白名单机制
编辑主配置文件:
sudo nano /etc/ssh/sshd_config
在文件中添加或取消注释以下行(多个用户名用空格分隔):
AllowUsers alice bob@192.168.1.100 charlie@2001:db8::1
说明:
-
alice表示允许该用户从任意 IP 登录 -
bob@192.168.1.100表示只允许 bob 从该 IPv4 地址登录 -
charlie@2001:db8::1表示只允许 charlie 从该 IPv6 地址登录 - 若同时配置了
AllowGroups,AllowUsers优先级更高 - 确保
PermitRootLogin设为no或prohibit-password
创建并验证目标用户
如果用户尚未存在,需先添加:
sudo useradd -m -s /bin/bash alice<br>sudo passwd alice
确认用户已正确创建且能本地登录。已有用户无需重复设置密码,但需确保其 shell 不是 /sbin/nologin 或 /usr/sbin/nologin(否则 SSH 拒绝登录)。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
检查用户 shell 设置:
getent passwd alice | cut -d: -f7
禁用密码登录(推荐增强安全)
仅靠 AllowUsers 无法抵御暴力破解,建议关闭密码认证,强制使用密钥:
- 设
PasswordAuthentication no - 确保
PubkeyAuthentication yes(默认开启) - 用户
~/.ssh/authorized_keys权限为600,目录~/.ssh权限为700 - 新用户首次登录前,需提前部署好公钥(如用
ssh-copy-id)
重载服务并验证配置
完成编辑后,务必按顺序执行:
sudo sshd -t # 无输出即语法正确<br>sudo systemctl reload sshd
新开终端测试:
- 用白名单内用户 + 正确密钥尝试登录 → 应成功
- 用白名单外用户(如新建的 test 用户)尝试登录 → 应立即拒绝,提示 “Permission denied”
- 用白名单内用户但从非授权 IP 登录(如设置了
@ip限制)→ 应拒绝
若误操作锁住自己,可通过服务器控制台(云平台 VNC、物理终端或带外管理)回退配置。










