CentOS 系统升级 OpenSSH 和 OpenSSL 的完整方案

一、升级前准备

  1. 安全备份
bash 复制代码
# 备份 SSH 配置和关键文件
cp -rf /etc/ssh /etc/ssh.bak
cp -rf /usr/bin/openssl /usr/bin/openssl.bak
cp -rf /etc/pam.d/sshd /etc/pam.d/sshd.bak

# 备份系统服务文件(CentOS 7)
cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
  1. 开启备用连接(防止 SSH 中断)
bash 复制代码
# 安装 Telnet 服务
yum install -y telnet-server
systemctl start telnet.socket
firewall-cmd --permanent --add-port=23/tcp
firewall-cmd --reload

# 允许 root 通过 Telnet 登录
mv /etc/securetty /etc/securetty.bak
  1. 安装编译依赖
bash 复制代码
# CentOS 7
yum groupinstall "Development Tools" -y
yum install zlib-devel openssl-devel pam-devel -y

# CentOS 8
dnf groupinstall "Development Tools" -y
dnf install zlib-devel openssl-devel pam-devel -y

二、升级 OpenSSL

  1. 下载并编译安装(以 OpenSSL 3.0.11 为例)
bash 复制代码
wget https://www.openssl.org/source/openssl-3.0.11.tar.gz
tar -zxvf openssl-3.0.11.tar.gz
cd openssl-3.0.11

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make && make install
  1. 配置系统环境
bash 复制代码
# 创建符号链接
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -sf /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

# 更新动态库路径
echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf.d/openssl.conf
ldconfig -v
  1. 验证版本
bash 复制代码
openssl version  # 应显示 OpenSSL 3.0.11

三、升级 OpenSSH

  1. 下载并编译安装(以 OpenSSH 9.8p1 为例)
bash 复制代码
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -zxvf openssh-9.8p1.tar.gz
cd openssh-9.8p1

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib
make && make install
  1. 替换系统文件
bash 复制代码
# 复制配置文件和二进制文件
cp -a ./contrib/redhat/sshd.init /etc/init.d/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

# 设置权限
chmod 0600 /etc/ssh/ssh_host_*
systemctl daemon-reload
  1. 配置 SSH 服务
bash 复制代码
# 修改配置文件(允许 root 登录和密码认证)
vim /etc/ssh/sshd_config
# 确保以下参数:
PermitRootLogin yes
PasswordAuthentication yes

# 重启服务
systemctl restart sshd

四、验证与测试

  1. 检查版本
bash 复制代码
ssh -V  # 应显示 OpenSSH_9.8p1
openssl version  # 应显示 OpenSSL 3.0.11
相关推荐
幼儿园蛋小黄1 分钟前
从设备树到 ARM 驱动:嵌入式 Linux 驱动开发学习总结
linux·arm开发·驱动开发
dishugj14 分钟前
HANA集群计划内切换与维护操作
java·linux·数据库
该逃避避20 分钟前
出海广告跑不起来怎么办?动态住宅IP助力广告跑量
运维·服务器·网络
一条泥憨鱼28 分钟前
【从0开始学习计算机网络】| ip协议-ttl-标识-分片偏移-ip分片与重组
运维·服务器·网络
爱吃香菜的初学者2 小时前
十四.Linux——消息队列
linux·运维·开发语言
姜鱼问生9 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*9 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP10 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_10 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时11 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka