title: OpenSSL 版本问题导致 SSH 服务无法正常启动的修复方法 date: 2025-03-06 08:44:38 tags: OpenSSH categories: 运维 cover: https://img.wanghaoyu.com.cn/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