CentOS7 升级 OpenSSH 完整步骤

CentOS7 系统默认的 OpenSSH 版本较低(通常为 6.6p1),存在安全漏洞,升级需先升级 OpenSSL(OpenSSH 9.0+ 要求 OpenSSL 1.1.1 及以上,CentOS7 原生为 1.0.2k,不升级会编译失败),且远程操作务必开备用终端(如 telnet / 本地控制台),防止升级中 SSH 断开无法连接。
 

一、前置准备

 

1. 检查当前版本

# 检查 OpenSSH 版本
ssh -V
# 检查 OpenSSL 版本(原生CentOS7一般为1.0.2k)
openssl version
 
 

2. 安装编译依赖 

yum install -y gcc make zlib-devel pam-devel wget tar bzip2 libtool
 
 

3. 临时关闭安全防护(避免编译 / 启动失败)

  
# 临时关闭SELinux(重启失效,永久关闭需修改/etc/selinux/config)
setenforce 0
# 关闭防火墙(若需保留,确保22端口开放:firewall-cmd --permanent --add-port=22/tcp && firewall-cmd --reload)
systemctl stop firewalld && systemctl disable firewalld
 
 

4. 远程操作关键:开启备用终端

 
如果是远程服务器,务必通过 本地控制台 / IPMI/iDRAC 打开备用终端,或临时开启 telnet 服务,防止 SSH 服务停止后无法连接。
 

二、升级 OpenSSL 至 1.1.1(LTS 稳定版)

 
OpenSSH 9.0+ 强制依赖 OpenSSL 1.1.1 及以上,此步骤为核心必做,跳过会导致 OpenSSH 编译报错。
 

1. 下载 OpenSSL 1.1.1 源码(选最新 LTS 版,如 1.1.1w)

  
# 进入临时目录
cd /usr/local/src
# 下载源码(官网镜像,速度快)
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSL/openssl-1.1.1w.tar.gz
# 解压
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
 

2. 编译安装 OpenSSL

 
# 配置编译参数(指定安装路径+启用共享库+zlib)
./config --prefix=/usr/local/ssl --shared zlib
# 编译(-j 后接CPU核心数,加速编译,如-j4)
make -j4
# 安装(跳过测试,节省时间)
make install
 
 

3. 替换系统原生 OpenSSL 并配置系统库 

# 备份原生openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/lib64/openssl /usr/lib64/openssl.bak
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.bak
# 建立软链接指向新安装的openssl
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ln -s /usr/local/ssl/lib64/libssl.so /usr/lib64/libssl.so
# 配置系统动态库加载
echo "/usr/local/ssl/lib64" >> /etc/ld.so.conf
# 刷新动态库
ldconfig
 
 

4. 验证 OpenSSL 升级结果

openssl version
# 输出如下即为成功:OpenSSL 1.1.1w  11 Sep 2023
 

posted on 2026-02-06 13:53  数据库那些事儿  阅读(4)  评论(0)    收藏  举报