
最近服务器扫除漏洞openssl和openssh的版本过低导致该篇文章记录升级过程和升级过程中安装包的下载地址注意因为我的服务器有系统盘备份升级崩了可以恢复在升级之前请看文章第七点一定看 一定看 一定看 一定看 一定看 一定看 一定看 一定看 一定看 一定看 一定看 一定看1、OpenSSL 3.0.19官网主页https://www.openssl.org/source/ 直接下载链接https://www.openssl.org/source/openssl-3.0.19.tar.gz2、OpenSSH 10.3p1Portable Linux 适配版带 p 后缀官方便携版主页https://www.openssh.com/portable.html 直接下载链接https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.3p1.tar.gz3、依赖安装包为了不到处下载依赖我将依赖打包到一个文件夹中上传后解压依赖包等我升级完其他服务器再回来补然后再依赖包目录下执行rpm -Uvh *.rpm --nodeps4、升级openssltar -zxvf openssl-3.0.19.tar.gz cd openssl-3.0.19 # 配置编译安装路径动态库支持 ./config --prefix/usr/local/openssl3 shared zlib # 编译 make make install # 配置系统动态库 echo /usr/local/openssl3/lib64 /etc/ld.so.conf ldconfig # 替换系统openssl软链接 mv /usr/bin/openssl /usr/bin/openssl.old ln -s /usr/local/openssl3/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl3/lib64/libssl.so.3 /usr/lib64/libssl.so.3 ln -s /usr/local/openssl3/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 # 验证新版本 openssl version # 输出应显示OpenSSL 3.0.19 31 Jan 2026 (Library: OpenSSL 3.0.19 31 Jan 2026)5、升级opensshtar -zxvf openssh-10.3p1.tar.gz cd openssh-10.3p1 # 编译配置关键参数绑定新OpenSSL、启用PAM、系统路径适配麒麟 ./configure \ --prefix/usr \ --sysconfdir/etc/ssh \ --with-pam \ --with-zlib \ --with-ssl-dir/usr/local/openssl3 \ --with-privsep-path/var/lib/sshd make -j$(nproc) make install # 修复SSH主机密钥权限 chmod 600 /etc/ssh/ssh_host_*_key # 清理旧版废弃GSSAPI配置新版不兼容会启动失败 sed -i /^GSSAPIAuthentication/d /etc/ssh/sshd_config sed -i /^GSSAPICleanupCredentials/d /etc/ssh/sshd_config # 兼容老旧客户端避免rsa算法拒绝连接 echo PubkeyAcceptedKeyTypes ssh-rsa /etc/ssh/sshd_config echo HostKeyAlgorithms ssh-rsa /etc/ssh/sshd_config echo KexAlgorithms diffie-hellman-group1-sha1 /etc/ssh/sshd_config6、重启 sshd、校验升级结果# 检查sshd配置语法报错不要重启 sshd -t # 重载systemd重启服务 systemctl daemon-reload systemctl restart sshd systemctl enable sshd # 查看新版本 ssh -V # 正常输出示例OpenSSH_10.3p1, OpenSSL 3.0.19 31 Jan 2026 # 查看服务状态 systemctl status sshd7、关键注意点升级前必做此处 是关键 是关键 是关键 是关键 是关键 是关键 是关键 是关键1 、备份原有 SSH 全部文件回滚救命# 二进制程序备份 cp /usr/bin/ssh /usr/bin/ssh.bak cp /usr/sbin/sshd /usr/sbin/sshd.bak # 配置目录整体备份 cp -r /etc/ssh /etc/ssh.bak.$(date %Y%m%d) # PAM、systemd文件备份 cp /etc/pam.d/sshd /etc/pam.d/sshd.bak cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak2、打开两个终端窗口并且升级过程不要关闭必须做必须做3、开启 Telnet 兜底通道升级失败应急登录yum install telnet-server telnet xinetd -y systemctl enable --now telnet.socket # 防火墙放行23端口 firewall-cmd --add-port23/tcp --permanent firewall-cmd --reload # 允许root telnet登录 echo pts/0 /etc/securetty4、异常回滚方案升级失败无法 SSH 时Telnet 登录执行# 恢复ssh二进制 mv /usr/bin/ssh.bak /usr/bin/ssh mv /usr/sbin/sshd.bak /usr/sbin/sshd # 恢复配置目录 rm -rf /etc/ssh mv /etc/ssh.bak.* /etc/ssh # 恢复PAM配置 mv /etc/pam.d/sshd.bak /etc/pam.d/sshd # 恢复系统openssl mv /usr/bin/openssl.old /usr/bin/openssl ldconfig # 重启服务 systemctl restart sshd最后希望大家升级顺顺利利