CentOS编译openssh提示OpenSSL >= 1.1.1 required 解决办法

此问题出现在最新版本openssh9.4上,按照正常流程编译,会提示openssl版本过低,openssh改变了openssl兼容方式,低版本openssl无法正常编译完成,解决办法一句话:先编译openssl高版本,然后修改openssh spec配置,需要读取升级后的openssl,才可以正常编译。

编译openssl:

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
yum install gcc
yum install perl-App-cpanminus.noarch
./config --prefix=/usr/local/openssl
make && make install
echo "/usr/local/lib64/" >> /etc/ld.so.conf
ldconfig
openssl version
ln -s  /usr/local/openssl/bin/openssl /usr/bin/openssl

升级后需要修改/root/rpmbuild/SPECS/openssh.spec配置文件

注意:openssl路径需要和上面openssl编译的路径/usr/local/openssl一致。

同时也可以处理openssl version和ssh -V显示得版本不一致问题。

增加openssl路径,会识别到新版本openssl:

sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh.spec
sed -i -e "s/^BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g" /root/rpmbuild/SPECS/openssh.spec
sed -i -e '/with-privsep-path/a\  --with-openssl-includes=/usr/local/openssl/include \\\n  --with-ssl-dir=/usr/local/openssl \\' /root/rpmbuild/SPECS/openssh.spec

注意:/usr/local/openssl/include 这个指的是你openssl安装路径,一定要是安装路径否则会找不到。

修改完成后重新编译openssh即可,centos6和centos7测试通过。
注意:centos6升级后会提示libssl.so.10: cannot open shared object file: No such file or directory解决办法,参考此文章解决:
CeotOS6提示 libssl.so.10: cannot open shared object file: No such file or directory解决办法

» 本文链接:CentOS编译openssh提示OpenSSL >= 1.1.1 required 解决办法
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。