生产环境SSH远程连接必须禁用密码登录、关闭root直连、限制访问来源、启用密钥认证及失败防护;具体包括:PasswordAuthentication no、PermitRootLogin no、AllowUsers指定用户、MaxAuthTries 3、UsePAM yes,并配合fail2ban与详细日志审计。

生产环境 SSH 远程连接必须默认禁用密码登录、关闭 root 直接登录、限制访问来源,并启用密钥认证和失败重试防护。这些不是可选项,而是基础安全底线。
禁用密码登录,强制使用密钥认证
密码登录极易被暴力破解,尤其在暴露于公网时。应将 /etc/ssh/sshd_config 中以下两项设为 no:
- PasswordAuthentication no
- PermitEmptyPasswords no
确保已部署合法密钥到 ~/.ssh/authorized_keys,且私钥本地严格保护(权限 600)。测试新配置前,务必保留一个已登录会话,执行 sudo systemctl reload sshd 验证,避免锁死。
禁止 root 用户直接远程登录
即使使用密钥,也不应允许 root 账户直连。修改配置项:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- PermitRootLogin no
运维人员应使用普通账户登录后,再通过 sudo 或 su - 提权。这样既保留操作审计路径,又降低高危账户暴露风险。
限制可登录用户与 IP 访问范围
最小权限原则适用于 SSH 接入层:
- 用 AllowUsers 明确指定可登录的系统账户(如
AllowUsers deploy admin) - 若管理网络固定,配合防火墙或直接在 sshd_config 中用 AllowGroups 或 Match Address 限定来源网段(例如
Match Address 192.168.10.0/24) - 避免依赖
DenyUsers或DenyGroups做“黑名单式”防护,易遗漏
增强服务端防护与日志监控
加固不只是改配置,还需主动防御与可观测性:
- 启用 MaxAuthTries 3 和 LoginGraceTime 60,缩短无效尝试窗口
- 开启 UsePAM yes,配合
faillock(RHEL/CentOS)或pam_faildelay(Debian/Ubuntu)实现登录失败锁定 - 确保 LogLevel VERBOSE 或 INFO,并定期检查
/var/log/auth.log(Debian系)或/var/log/secure(RHEL系)中异常连接模式 - 建议部署
fail2ban自动封禁高频失败 IP,但需注意云环境 NAT 场景下的误封风险

















