OpenSSH 9.8p1-1 安全更新
请使用 sshd 的用户尽快将 OpenSSH 更新到 9.8p1-1(或更新)版本,以修复 CVE-2024-6387 远程代码执行漏洞。
请注意:此次 9.8 版本的更新比较特别,请记得在更新完成之后、连接断开之前重启 sshd 服务,否则有可能无法再次连上(不重启服务的话漏洞也不会被修复)。
重启 sshd 服务并不会中断已有的 ssh 连接。
2024.7.11 勘误更新: 感谢好友Googboyboy的提醒, 目前已经更正了编译当中有误的部分
您应当在make install 后, 手动检查并完成sshd的升级替换
APT更新
当前Debian官方APT源已经更新,但是国内的镜像可能还尚未同步
你可以输入以下命令尝试升级
apt install --only-upgrade openssh-server
参考回显
openssh-server is already the newest version (1:9.2p1-2+deb12u3).
此处的u3版本也是得到修复了的版本
编译更新
或者,如果想要自己尝试编译更新,以及你使用的apt源还尚未跟进的
可以尝试使用来自群友的如下命令
apt update && apt install -y build-essential zlib1g-dev libssl-dev && wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz && tar -xzf openssh-9.8p1.tar.gz && cd openssh-9.8p1 && ./configure && make && make install && systemctl restart ssh
【勘误部分】完成更新
#在systemd中找到sshd的二进制文件路径
cat /etc/systemd/system/sshd.service
#备份原来的sshd
mv /usr/sbin/sshd /usr/sbin/sshd.old
#复制二进制文件
cp /usr/local/sbin/sshd /usr/sbin/sshd
#重启sshd服务
sudo systemctl restart sshd
检查sshd的版本
#使用绝对路径 防止环境变量干扰
/usr/sbin/sshd -V
重新连接后会提示密钥指纹变更的情况,同意接受即可
编译对系统环境和配置有一定要求,不干净的系统极有可能编译失败
如果看到
make[1]: Nothing to be done for 'all'
或者其他一大片的编译错误,基本上就是编译没通过
但是编译没有通过也仅仅是没编译成功而已,没有任何额外的副作用(除了你需要另外找办法去修复这个问题),删除源码包和编译目录即可
紧急处置
确实,可能会碰到暂时无法修复的情况
我建议考虑以下操作
1.保留ssh服务,但在ecs安全组中封禁ssh传入
2.彻底关闭ssh服务端
然后等待apt源更新,或者寻找编译好的deb包,手动执行安装操作