安装openssl

需要提前安装好openssl,在编译过程使用配置路径,就可以处理编译后openssl version和ssh -V显示得版本不一致问题。
如下用到安装包
openssl-1.1.1k-1.el7.x86_64.rpm
openssl-devel-1.1.1k-1.el7.x86_64.rpm
执行安装

rpm -e `rpm -qa | grep openssl | grep -v libs` --nodeps
rpm -Uvh openssl* --nodeps
cp /etc/ld.so.conf /etc/ld.so.conf.bak
#sed -i '/openssl/d' /etc/ld.so.conf
echo "/usr/local/openssl/lib">> /etc/ld.so.conf
ldconfig
openssl version

安装openssl后,可查看到新增得/usr/local/openssl目录,在编译过程修改openssh.spec配置。

编译rpm包

源码包下载,建议复制url到浏览器,打开下载。

wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

准备编译环境

yum install rpm-build gcc make wget openssl-devel krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts

准备rpmbuild环境

mkdir -p /root/rpmbuild/SOURCES
mkdir -p /root/rpmbuild/SPECS
cp /root/openssh-9.0p1.tar.gz /root/rpmbuild/SOURCES/
cp /root/x11-ssh-askpass-1.2.4.1.tar.gz /root/rpmbuild/SOURCES/
tar -zxf openssh-9.0p1.tar.gz -C /opt
cp /opt/openssh-9.0p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
chown sshd:sshd /root/rpmbuild/SPECS/openssh.spec c 

修改/root/rpmbuild/SPECS/openssh.spec配置文件
注意如果增加openssl路径,会识别到新版本得openssl,在安装过程也会优先安装openssl1.1.1后,才能正常启动openssh,可以处理openssl version和ssh -V显示得版本不一致问题。

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 

在/root/rpmbuild/SPECS/目录中执行命令

rpmbuild -ba openssh.spec

rpm则生成在/root/rpmbuild/RPMS/x86_64目录中

ll /root/rpmbuild/RPMS/x86_64

openssh9.0的rpm安装

开启telnet

telnet主要防止ssh操作失误导致服务无法登陆问题,telnet为明文登陆,确保ssh正常后,这里用已经准备好的telnet安装包操作
在这里插入图片描述

tar -xzvf telnet_rpm.tar.gz
cd telnet_rpm
rpm -ivh *.rpm 
cat telnet_install.txt > /etc/xinetd.d/telnet
systemctl start telnet.socket
systemctl start xinetd.service
安装过程要谨慎,要先备份原文件以及安装telnet,然后开启telnet并验证能否明文登陆,再着手更新openssh8.5版本

备份文件

mkdir ssh_backfile
cp -rf /etc/ssh ssh_backfile/
cp -rf /etc/pam.d/sshd ssh_backfile/

备份sshd.service启动文件,因为如果有执行yum remove就会出现删除启动文件,可以不备份,不过为了以防万一,多操作无所谓,有的启动文件目录不一定相同。

mkdir ssh_service
cp -rf /usr/lib/systemd/system/sshd* ssh_service/

在这里插入图片描述

升级openssh

systemctl stop sshd
rpm -Uvh rpm-openssh/openssh* --nodeps

恢复备份文件

cp -rf ssh_backfile/ssh/* /etc/ssh/
chmod -R 600 /etc/ssh/*
cp -rf ssh_backfile/sshd /etc/pam.d/sshd
systemctl restart sshd

在这里插入图片描述
至此更新openssh9.0已完成

建议自给自足,以下是本人制作好的rpm包:
https://download.csdn.net/download/weixin_43723044/85188277

Logo

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

更多推荐