
SSH 是 Linux 服务器最常用的远程管理入口,也是基础安全加固中必须优先收敛的位置。基础防护的重点不在于堆叠复杂配置,而在于明确四件事:谁可以连入、谁可以登录、采用什么认证方式、变更后如何验证。本文按排查和变更顺序展开,从当前配置确认开始,依次完成认证收紧、来源限制、服务重载和日志验证,使 SSH 从默认开放入口收敛为可控、可复查的管理通道。
加固前应先确认 sshd 的最终生效配置。sshd -T 会展开 Include 和 Match 后的结果,比只查看 /etc/ssh/sshd_config 更接近真实运行状态,适合用于判断当前入口是否仍存在明显暴露面。
# 查看 SSH 实际生效配置,确认 root、密码和认证次数$ sudo sshd -T | egrep '^(permitrootlogin|passwordauthentication|pubkeyauthentication|maxauthtries)'permitrootlogin prohibit-passwordpasswordauthentication yespubkeyauthentication yesmaxauthtries 6
PasswordAuthentication 为 yes,说明仍允许密码登录,弱口令和暴力破解尝试的风险更高。
PermitRootLogin 不应允许 root 直接远程登录,日常管理应使用普通账号登录后再通过 sudo 执行授权操作。
MaxAuthTries 控制单次连接内的认证尝试次数,可适当收紧,但它不能替代账号范围和来源范围限制。
SSH 登录入口需要同时收紧认证方式和账号范围。确认密钥可用后,再关闭密码登录;同时使用 AllowUsers 或 AllowGroups 限制可登录对象,避免临时账号、服务账号或无关账号成为远程入口。
# 写入 SSH 基础加固配置,收紧登录入口$ sudo tee /etc/ssh/sshd_config.d/10-hardening.conf >/dev/null <<'EOF'PermitRootLogin noPasswordAuthentication noPubkeyAuthentication yesMaxAuthTries 3AllowUsers ops deployEOF已写入 SSH 基础加固配置
这段配置完成三项基础收敛:禁止 root 直接登录、关闭密码认证、只允许指定用户登录。写入前应保留当前会话,并确认至少一个具备管理权限的账号已经可以通过密钥登录;将规则放在独立配置文件中,也便于后续审计和回退。
认证方式收紧后,仍应避免把 SSH 端口暴露给所有网络。常见做法是只允许堡垒机、VPN 地址段或管理网段访问 SSH;云服务器可优先在安全组中限制来源。
# 只允许管理网段访问 SSH 服务,减少公网暴露面$ sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" service name="ssh" accept'success# 重新加载防火墙规则$ sudo firewall-cmd --reloadsuccess
具体工具可以是 firewalld、ufw、nftables 或云安全组。工具不同,原则一致:只让可信管理来源访问 SSH,而不是长期向全网开放远程管理端口。
修改 SSH 配置后不应直接断开当前会话。正确顺序是先检查语法,再平滑重载服务,最后从日志中确认成功登录和拒绝记录是否符合预期。
# 重载前检查配置语法,避免错误配置影响登录$ sudo sshd -t语法检查通过,命令无输出# 平滑重载 sshd,并保留当前连接$ sudo systemctl reload sshdsshd 已重新加载# 查看最近登录日志,确认成功登录与拒绝记录$ sudo journalctl -u sshd -n 5 --no-pagerAccepted publickey for ops from 192.168.10.15User test not allowed because not listed in AllowUsers
如果新会话无法登录,应在旧会话中回退最近修改的配置,并结合日志确认拒绝原因。Accepted publickey 表示密钥登录成功,not listed in AllowUsers 表示用户限制已经生效。
SSH 基础防护的核心是把远程管理入口收敛到可控范围:限制来源,限制账号,关闭不必要的密码登录,并通过语法检查、服务重载和日志记录验证结果。完成这些基础步骤后,SSH 服务不再只是一个默认开放的登录端口,而是具备明确边界和可复查结果的管理通道。
欢迎「长按」下方图片👇,关注我们在公众号上的专业知识分享。