OpenSSH 开发团队在 11 月 5 日发布了紧急更新 10.6p2,修补一个通过长密码绕过身份验证的漏洞——SSHole,编号 CVE-2026-123158。随后的消息让不少站长坐不住了:补丁公布才 9 个小时,安全公司 Previdian 就在蜜罐里抓到了真实的利用尝试。攻击者成功绕过了认证,以 root 身份闯进了系统。
这不是演习。CISA 在 11 月 9 日更新了已知被利用漏洞名单(KEV),SSHole 赫然在列。换句话说,这个漏洞已经被攻击者盯上,并且正在被武器化。跑着 WordPress 主题站、DedeCMS 模板站,或者给客户托管建站源码的服务器,第一道防线很可能就是 SSH——如果这道门锁坏了,后面的应用层安全做得再好也白搭。

补丁出了,不代表就安全了
很多站长会问:我的 OpenSSH 版本是 8.x 或者 9.x,也受影响吗?受影响。这个漏洞影响的范围很宽,只要攻击者能以某种方式发起密码认证请求,就可能通过构造异常长的密码绕过验证。说得再直白一点:如果你的服务器开放了 SSH 密码登录,并且没有把 OpenSSH 升级到 10.6p2 或更高,风险就不是“理论上的”,而是已经有人在试了。
至于那些只允许密钥登录的服务器,虽然受冲击面小得多,但建议也别掉以轻心——配置上的疏忽,比如某个测试账号开了密码登录,就可能成为突破口。
先看版本,再决定要不要动
连上服务器,跑一句就能确认当前的 OpenSSH 版本:
ssh -V
输出如果显示早于 OpenSSH_10.6p2,就需要更新。不同发行版的更新命令差别不大,几个常见环境可以直接抄:
- Debian/Ubuntu:sudo apt update && sudo apt install --only-upgrade openssh-server
- CentOS/RHEL:sudo yum update openssh-server
- Alpine Linux:apk upgrade openssh
更新后记得重启 SSH 服务,Debian 系一般用 sudo systemctl restart ssh,留意不要掉线。
一时半会儿更新不了,先把密码登录关掉
总有站长会遇到依赖冲突、内核兼容性问题,或者生产环境不敢直接动包。这个时候,临时关掉密码认证比冒险要划算得多。编辑 /etc/ssh/sshd_config,把下面这行改成 no:
PasswordAuthentication no
然后重启 sshd。记得先确认自己已经配好了密钥,并且能用密钥成功登录,再关密码——否则会把自己锁在门外。
还有一个容易忽略的细节:检查一下 /etc/ssh/sshd_config.d/ 这一类子配置目录,有些发行版会在这里另起配置文件,覆盖掉主配置,光改主文件可能没用。
顺手翻一翻日志
打了补丁、锁了密码,顺带看一眼最近的 SSH 认证日志。大量的失败尝试、用奇怪的长用户名或长密码的请求,都是值得留意的信号。可以用一条简单命令快速数一下:
grep sshd.*Failed /var/log/auth.log | awk '{print $NF}' | sort | uniq -c | sort -nr
如果你的 WordPress 主题站点或者 DedeCMS 模板站后台没有记录异常登录,不代表 SSH 层没人来过。日志里藏着比后台登录记录更早的线索。
SSHole 已经不是一个还在讨论该不该修的漏洞了,它正在被利用。环境不同、发行版不同,更新和加固的难点也不一样。先确保自己这扇门锁好,再去琢磨后面的站怎么优化。
修补完漏洞,顺手检查一下服务器常用权限配置,这部分踩坑记录和 WordPress 模板的部署教程,站内都有现成的可以查。
