title: OpenSSL 版本问题导致 SSH 服务无法正常启动的修复方法
date: 2025-03-06 08:44:38
tags: OpenSSH
categories: 运维
cover: https://img.wanghaoyu.me/Picture/img/20250306092859236.png
故障如上图所示,启动 ssh 服务时抛出如下错误 OpenSSL version mismatch build against xxxxx you have xxxxxx
这是因为 OpenSSL 与 OpenSSH 服务的版本号不匹配导致的此类问题,经检查 OpenSSL 版本高于 OpenSSH 所需要的版本。
解决方案
升级OpenSSH服务
检查并安装相关依赖以及编译工具
sudo apt install build-essential checkinstall zlib1g-dev libpam0g-dev
编译安装 OpenSSH
下载 OpenSSH 源码包并解压
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz
tar -zxvf openssh-9.9p1.tar.gz
cd openssh-9.9p1
mkdir build
使用 configure
脚本配置 OpenSSH
./configure --prefix=$(pwd)/build --sysconfdir=$(pwd)/build/etc/ssh --with-ssl-dir=/usr --with-pam --with-md5-passwords
编译安装 OpenSSH
sudo make
更新 sshd
二进制文件
需要先将旧版本的二进制文件备份一下
cp -a /usr/sbin/sshd "/usr/sbin/.sshd_old_$(date +%Y%m%d_%H%M%S)"
将新编译的 sshd
二进制文件 复制到 /usr/sbin/
目录
cd openssh-9.9p1/build
cp build/sbin/sshd /usr/sbin/sshd -av
chmod 755 /usr/sbin/sshd
验证版本号
sshd -V
启动服务
sshd -t
systemctl restart sshd
systemctl status sshd