银河麒麟v10 升级 SSH由8.2到9.9 二进制安装失败 根据您提供的 yum check-update 输出结果,情况如下: 结论: 您的系统官方源中目前 没有更新的 OpenSSH 版本 。 当前版本: 8.2p1 源中最新版本: 8.2p1-16.p27.ky10 虽然版本号相同,但这是一个针对麒麟系统的修订版。它可能包含部分安全补丁(Backport),但通常无法修复像 CVE-2020-15778 这种涉及代码逻辑变更的漏洞。 因此,为了彻底修复漏洞,您需要采用 源码编译安装 的方式将 OpenSSH 升级到最新的稳定版(建议 9.9p2 或更高)。 🚀 升级操作指南 (CentOS/Kylin V10) 由于涉及到底层核心组件升级,请务必严格按照以下步骤操作。 ⚠️ 第一阶段:准备工作与备份 (至关重要) 严重警告: 不要关闭当前的 SSH 窗口! 请新开一个窗口进行测试,确保新服务正常后再关闭旧窗口。 建议开启 Telnet 服务或通过 VNC/IPMI 控制台操作,以防升级失败导致无法远程连接。 安装编译依赖: sudo yum install -y gcc make zlib-devel openssl-devel pam-devel systemd-devel wget tar 备份现有文件: # 备份配置文件 sudo cp -r /etc/ssh /etc/ssh.bak.$(date +%F) # 备份二进制文件 sudo cp /usr/bin/ssh /usr/bin/ssh.bak sudo cp /usr/sbin/sshd /usr/sbin/sshd.bak 📥 第二阶段:下载与编译 下载最新源码包: 我们将下载最新的 OpenSSH 9.9p2(修复了您提到的漏洞及后续多个高危漏洞)。 cd /tmp wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz tar -zxf openssh-9.9p2.tar.gz cd openssh-9.9p2 编译与安装: 注意配置参数,确保兼容麒麟系统的 PAM 认证和 Systemd 管理。 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/lib64 --with-zlib --with-pam --with-systemd make sudo make install 🔧 第三阶段:配置与服务替换 修正配置文件权限: 新版本可能会生成新的配置示例,我们需要确保主配置文件允许 Root 登录(除非您有专门的普通用户)。 # 检查配置文件中 PermitRootLogin 是否为 yes sudo sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config # 如果是密码登录,确保 PasswordAuthentication 为 yes sudo sed -i 's/#PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config 替换 Systemd 服务文件: 这是最关键的一步,否则 systemctl restart sshd 可能会失败。 # 复制官方提供的 systemd 文件 sudo cp contrib/redhat/sshd.init /etc/init.d/sshd sudo chmod +x /etc/init.d/sshd # 如果存在旧的 systemd 服务文件,建议移除或覆盖(视具体系统情况而定) # 这里我们尝试直接重启服务 重启 SSH 服务: sudo systemctl daemon-reload sudo systemctl restart sshd ✅ 第四阶段:验证 检查版本: 在 新开的终端窗口 执行: ssh -V 如果显示 OpenSSH_9.9p2 ,则说明升级成功。 清理: 确认无误后,可以删除 /tmp 下的源码包。 💡 补充说明 如果您觉得编译安装风险太大,且该服务器不对外网开放,您可以暂时维持现状,但建议结合之前的 方案二(临时缓解) ,即重命名 /usr/bin/scp ,以阻断最直接的漏洞利用途径。