升级异常
升级 openssh 的版本在编译的时候就出现了错误,提示 ssl 的版本不匹配,最低需要 1.1
编译openssl
所以我们安装了一个最新版本的 openssl-1.1.1新版
./config --prefix=/usr/local/openssl1.1.1 shared zlib
make && make install
再次尝试
这次配置的时候关联了 openssl 的目录
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd --with-pam --with-ssl-dir=/usr/local/openssl1.1.1
但是配置仍然报错,内容如下:
checking OpenSSL header version... failed
查看了配置参数,只有这一个是指定路径的,所以参数名应该是没有问题的,于是我又更换为了 openssl 解压后的源码目录,但仍然是相同的错误
继续排查
又怀疑是 openssl-1.1.1 版本太低,于是又下载了一个 openssl-3.3.1 使用上面相同的方式测试,但结果仍然是一样的报错
接下来,详细的查看了 openssh 当前目录下的 config.log 日志,发现有如下错误:
error while loading shared libraries: libcrypto.so.3
./conftest: error while loading shared libraries: libcrypto.so.3: cannot open shared object file
应该就是动态库文件没有找到,所以还是把动态库加入到 ldconfig 算了,加入到环境变量中,这样应该就不会找不到了
echo /usr/local/openssl/lib64 >> /etc/ld.so.conf.d/ssl3.conf && ldconfig && ldconfig -pv
果然再次编译没有任何错误
安装完成
- 还要还原
/etc/pam.d/sshd
,第一次从 rpm 源码升级,rpm 卸载会重命名备份这个文件为 sshd.rpmsave - 复制启动脚本到 并且设置开机自启
- 接着为了保证配置跟以前一致,可以还原之前的配置,避免前后端口不一致导致连不上了
- 再接下来测试配置文件 sshd -t ,保证配置文件测试无误后重启
评论