找回密码
 立即注册
首页 业界区 业界 Linux 系统升级 OpenSSL 3.1.3& OpenSSH 10.0p2安装指南 ...

Linux 系统升级 OpenSSL 3.1.3& OpenSSH 10.0p2安装指南-踩坑日记

琴丁辰 2025-9-26 14:58:44
 
Linux 系统升级 OpenSSL & OpenSSH 安装指南
适用场景:需要 OpenSSL ≥ 1.1.1,低版本系统需先升级 OpenSSL。
注意:操作可能影响 SSH 登录,请严格按步骤操作。

0. 应急措施


  • 保留应急登录方式

    • 不要关闭当前 SSH 会话,在新 SSH 未验证通过前,保持旧会话。
    • 如果条件允许,建议开启 本地终端 / IPMI / 控制台,防止无法登录。

  • 备份旧版本(强烈建议)
# 备份 OpenSSH
sudo mkdir -p /usr/local/backup/openssh
sudo cp /usr/bin/ssh /usr/local/backup/openssh/
sudo cp /usr/sbin/sshd /usr/local/backup/openssh/
sudo cp -r /etc/ssh/usr/local/backup/openssh/etc_ssh
 
# 备份 OpenSSL
sudo mkdir -p /usr/local/backup/openssl
sudo cp -r /usr/bin/openssl*/usr/local/backup/openssl/ 2>/dev/null || true
sudo cp -r /usr/lib64/libssl*/usr/local/backup/openssl/ 2>/dev/null || true
sudo cp -r /usr/lib64/libcrypto*/usr/local/backup/openssl/ 2>/dev/null || true

1. 安装依赖环境

CentOS / RHEL
sudo yum groupinstall "Development Tools"-y
sudo yum install wget curl zlib-devel -y
Ubuntu / Debian
sudo apt update
sudo apt install build-essential zlib1g-dev wgetcurl -y

2. 安装新版 OpenSSL


  • 检查版本
openssl version

  • 若 < 1.1.1,需要升级 OpenSSL。

  • 下载并解压源码(建议 3.x 版本)
cd /usr/local/src
wgethttps://www.openssl.org/source/openssl-3.1.3.tar.gz
tar -xzf openssl-3.1.3.tar.gz
cd openssl-3.1.3

  • 安装缺失的 Perl 模块(编译依赖-适用时)
# RHEL / CentOS
sudo yum install perl-IPC-Cmd perl-core -y
 
# Ubuntu / Debian
sudo apt install perl-modules build-essential -y
sudo cpan IPC::Cmd

  • 编译安装 OpenSSL
./config --prefix=/usr/local/openssl--openssldir=/usr/local/openssl shared zlib
make -j$(nproc)
sudo make install

  • 配置环境变量
export PATH=/usr/local/openssl/binPATH
exportLD_LIBRARY_PATH=/usr/local/openssl/lib64LD_LIBRARY_PATH
exportPKG_CONFIG_PATH=/usr/local/openssl/lib64/pkgconfigPKG_CONFIG_PATH

  • 验证版本
openssl version
# 应显示 OpenSSL 3.1.3 或更高

  • 系统全局库路径配置
sudo bash -c 'echo"/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl-3.conf'
sudo ldconfig

3. 安装 OpenSSH 10.0p2


  • 下载源码
cd /usr/local/src
wgethttps://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p2.tar.gz
tar -xzf openssh-10.0p2.tar.gz
cd openssh-10.0p2

  • 配置编译,指定新 OpenSSL
./configure --with-ssl-dir=/usr/local/openssl--sysconfdir=/etc/ssh
make -j$(nproc)
sudo make install

  • 验证安装
/usr/local/bin/ssh -V
# 应显示 OpenSSH_10.0p2, OpenSSL 3.1.3 ...

4. 常见问题与解决

4.1 编译 OpenSSL Perl 模块缺失
Can't locate IPC/Cmd.pm in @INC ...

  • 解决:安装缺失 Perl 模块(见步骤 2.3)
4.2 系统找不到libssl.so.3 / libcrypto.so.3
openssl: error while loading shared libraries:libssl.so.3: cannot open shared object file

  • 检查库文件
ls -l /usr/local/openssl/lib64

  • 添加到系统动态库路径并刷新缓存
sudo bash -c 'echo"/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl-3.conf'
sudo ldconfig
4.3 OpenSSH ./configure 仍检测到旧 OpenSSL
checking OpenSSL library version... configure:error: OpenSSL >= 1.1.1 required (have "100020bf")

  • 原因:默认检测系统路径未找到新 OpenSSL
  • 解决:编译时明确指定新 OpenSSL 路径
./configure --with-ssl-dir=/usr/local/openssl

  • 并确保:
exportLD_LIBRARY_PATH=/usr/local/openssl/lib64LD_LIBRARY_PATH
exportPKG_CONFIG_PATH=/usr/local/openssl/lib64/pkgconfigPKG_CONFIG_PATH

⚠️注意事项


  • 不要删除系统默认 OpenSSL,否则系统工具(curl、git 等)可能报错。
  • 保持旧 SSH 会话,避免新 OpenSSH 配置错误导致无法远程登录。
  • 路径中不要使用特殊字符(如 ! 或 |)。
  • 64 位系统库路径:新库一般安装在     lib64,不要写成 lib。
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

18 小时前

举报

yyds。多谢分享
您需要登录后才可以回帖 登录 | 立即注册