CentOS7下快速升级至OpenSSH9.3p2安全版本
之前的文章可供参考:CentOS7下快速升级OpenSSH至8.9p1安全版本
一、CentOS7服务器上编译生成OpenSSH9.3p2的RPM包
1、编译打包的shell脚本来源于该项目
https://github.com/boypt/openssh-rpms
(图片点击放大查看)
unzip openssh-rpms-main.zip -d /opt
cd /opt/
cd openssh-rpms-main/
(图片点击放大查看)
#OPENSSLSRC=openssl-1.0.2.tar.gz // 注意选择openssl版本或者使用默认的版本
OPENSSLSRC=openssl-1.0.2k.tar.gz 这个版本太低会报错
OPENSSLSRC=openssl-1.1.1k.tar.gz 最低这个版本否则报错
vim pullsrc.sh
修改第23行为source ./version.env
wget $OPENSSLMIR/$OPENSSLSRC
wget $OPENSSHMIR/$OPENSSHSRC
wget $ASKPASSMIR/$ASKPASSSRC
这三行改为
wget --no-check-certificate $OPENSSLMIR/$OPENSSLSRC
wget --no-check-certificate $OPENSSHMIR/$OPENSSHSRC
wget --no-check-certificate $ASKPASSMIR/$ASKPASSSRC
2、sh pullsrc.sh下载源码包
sh pullsrc.sh
(图片点击放大查看)
openssh源码中是没有ssh-copy-id相关参数的,如果直接编译安装,会发现安装后没有ssh-copy-id命令,因此如果需要用到该命令,需要修改编译参数控制文件openssh.spec (大概在305行的位置)
# vim el7/SPECS/openssh.spec +305 # 插入以下内容 install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id
在388行的位置再继续插入以下内容,保存退出
%attr(0755,root,root) %{_bindir}/ssh-copy-id
修改openssl版本否会编译失败
3、准备编译所需环境
cat README.md
yum groupinstall -y "Development Tools"
yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel perl-IPC-Cmd
(图片点击放大查看)
执行编译打包脚本
./compile.sh
(图片点击放大查看)
最后会生成rpm包位于
/opt/openssh-rpms-main/el7/RPMS/x86_64/
将生成的rpm包打包
tar -zcvf openssh9.3p2_el7_rpms.tar.gz *.rpm
二、使有rpm包CentOS7服务器上升级OpenSSH
在需要升级OpenSSH版本的CentOS7服务器上升级OpenSSH 具体升级操作命令如下
tar -zxvf openssh9.3p2_el7_rpms.tar.gz -C /home
cd /home
rpm -Uvh *.rpm
rm -rf /etc/ssh/ssh_host_*
systemctl restart sshd
(图片点击放大查看)
ssh -V
sshd -V
rpm -aq | grep openssh
(图片点击放大查看)
即可验证当前OpenSSH的版本 可以看到openssh的版本为OpenSSH_9.3p2 使用的是OpenSSL 1.1.1u
本文使用到的openssh9.3p2_el7_rpms.tar.gz和openssh-rpms-main.zip文件
https://github.com/cheyunhua/openssh-rpms
https://www.cnblogs.com/cyleon/p/17729502.html
https://cloud.tencent.com/developer/article/2324196