记一次升级openssh9.0(openssh 安全漏洞CVE-2021-41617)

服务器版本 centos 7

包名版本
openssh9.0p1
openssl1.1.1p
zlib1.2.7-20.el7_9
zlib-devel1.2.7-20.el7_9

1.下载openssh安装包

地址 OpenSSH: Release Notes

2.到服务器解压准备安装

解压安装

# pwd
# /usr/local
tar xf openssh-9.0p1.tar.gz
cd openssh-9.0p1
./configure && make -j 2 && make install

发现安装报错

Error *** zlib.h missing

搜索引擎告诉我是缺少zlib 和 zlib-devel 包

3.安装zlib zlib-devel

下载地址

zlib-devel: http://mirror.centos.org/centos/7/updates/x86_64/Packages/zlib-devel-1.2.7-20.el7_9.x86_64.rpm

zlib: http://mirror.centos.org/centos/7/updates/x86_64/Packages/zlib-1.2.7-20.el7_9.x86_64.rpm

使用yum本地安装rpm包
zlib-devel 依赖于 zlib ,所以需要先安装zlib

yum -y install *.rpm

继续执行ssh安装,发现报错

Error *** working libcrypto not found

搜素引擎告诉我是缺少openssl,或者找不到安装目录

使用命令查看

which openssl
/usr/bin/openssl

可以找到openssl,于是猜想是不是版本问题,更新一下版本

4.安装openssl

下载地址:https://www.openssl.org/source/openssl-1.1.1p.tar.gz

下载后解压

# pwd=/usr/local/
cd openssl-1.1.1p/
# 安装
./config --prefix=/usr/local/openssl && make && make install
# 备份原openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
# 建立软连接
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
# 写入配置
echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf
ldconfig -v

安装完成后查看版本

openssl version
# 发现报错
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
# 是因为对应的文件路径没有找到
# 建立软连接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# 重新查看版本
openssl version
OpenSSL 1.1.1p  21 Jun 2022

5.重新安装openssh

执行

cd /usr/local/openssh-9.0p1
./configure && make -j 2 && make install
# 发现依然报错 Error *** working libcrypto not found
# 指定openssl位置
./configure --with-ssl-dir=/usr/local/openssl && make -j 2 && make install

安装成功后执行 ssh -V 发现还是原来的版本, /usr/local/bin/ssh -V 是新版本

# 备份原ssh文件
mv /usr/bin/ssh /usr/bin/ssh.bak
# 创建软连接
ln -sf /usr/local/bin/ssh /usr/bin/ssh
ssh -V
OpenSSH_9.0p1, OpenSSL 1.1.1p  21 Jun 2022

重启ssh服务

systemctl daemon-reload
systemctl restart sshd

6.重新连接服务器

在windows上使用ssh连接

ssh root@xxx.xxx.xx.xx

连接报错Host key verification failed. 出现这个错误是因为之前连接过服务器在客户端保存了连接认证信息,在用户目录下找到 .ssh/known_hosts 文件,删除ip对应的行,重新连接,连接成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐