应使用AllowUsers指令配置白名单,如AllowUsers alice bob,仅列出用户可登录;修改后需sudo systemctl reload sshd生效,且DenyUsers在此情况下失效。

如何在Linux中配置具体的用户SSH权限

只允许特定用户通过SSH登录

SSH服务默认允许所有本地用户登录,这在生产环境中是必须限制的。怎么做呢?关键是修改 /etc/ssh/sshd_config 里的 AllowUsersAllowGroups 指令,可别依赖系统级账户禁用(比如 usermod -s /usr/sbin/nologin),因为这种方式无法阻止密钥认证成功后建立会话。

禁止某用户使用密码登录,仅允许密钥

这是提升安全性的常见做法,但容易误配导致用户完全无法登录。核心是针对单个用户设置 ForceCommand 或利用 Match User 块,而非全局关闭密码认证。

限制用户只能执行指定命令(如只允许rsync)

当用户只需完成单一任务(如备份推送),不应赋予交互式 shell 权限。OpenSSH 提供 ForceCommand 配合 internal-sftp 或自定义脚本实现,比用 rssh 更轻量、无需额外安装。

为什么改完配置 SSH 还连不上?常见排查点

权限问题和日志缺失是调试最大障碍。不要只看客户端报错“Connection refused”或“Permission denied”,要查服务端真实原因。

实际配置中最容易被忽略的是 Match 块的生效顺序和 ForceCommand 对协议兼容性的影响——它们不像普通参数那样“设置即生效”,而是依赖上下文匹配与子进程接管,稍有偏差就静默失败。动手前,先用 sshd -T 和日志交叉验证,比反复试错快得多。
本文转载于:https://www.php.cn/faq/3024685.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。