使用rpm升级openssh9.6p1

cd /tmp/
wget --no-check-certificate http://vip.123pan.cn/1815238395/download/openssh/9.6/openssh-9.6p1-rpms.tar.gz
tar xzvf openssh-9.6p1-rpms.tar.gz
rpm -Uvh openssl11-libs-1.1.1k-6.el7.x86_64.rpm
rpm -Uvh openssh-9.6p1-1.el7.x86_64.rpm openssh-clients-9.6p1-1.el7.x86_64.rpm openssh-server-9.6p1-1.el7.x86_64.rpm 
chown -R 600 /etc/ssh/*
wget --no-check-certificate http://vip.123pan.cn/1815238395/download/openssh/9.6/sshd.pam.txt -O /etc/pam.d/sshd
sed -i '/^PermitRootLogin/d' /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
systemctl restart sshd
systemctl status sshd

安装效果如下:
2024-01-17T03:18:19.png

检查各项指标:

# 查看当前ssh版本
ssh -V

# 查看当前
ssh -Q key

2024-01-17T03:12:29.png

如何自己编译rpm包呢

(0)下载源代码

cd /root
wget "https://mirrors.aliyun.com/openssh/portable/openssh-9.6p1.tar.gz" -O openssh-9.6p1.tar.gz
tar xzvf openssh-9.6p1.tar.gz
cd /root/openssh-9.6p1

(1)安装rpm打包工具

yum install -y rpmdevtools

(2)进入一个目录,使用刚刚安装的工具生成编译所需的文件夹

cd /root
rpmdev-setuptree

(3)将openssh9.6.1的中的openssh.spec文件拷贝到SOURCES文件夹里

cp ./openssh-9.6p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS/openssh.spec

(3)将openssh9.6.1的代码包拷贝到SOURCES文件夹里

cp /root/openssh-9.6p1.tar.gz ~/rpmbuild/SOURCES/

(3.5)编译前微调
将openssh.pem中的without-ssl的内容删掉。不加上openssl,可能会造成ssh -Q key的时候不支持rsa和edcsa等,只支持ed25519,过去部署的RSA key都会失效。另外,注意configure里面不要加井号#注释,这是不对的。
2024-01-17T03:13:49.png

%configure \
        --sysconfdir=%{_sysconfdir}/ssh \
        --libexecdir=%{_libexecdir}/openssh \
        --datadir=%{_datadir}/openssh \
        --with-default-path=/usr/local/bin:/bin:/usr/bin \
        --with-superuser-path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin \
        --with-privsep-path=%{_var}/empty/sshd \
        --mandir=%{_mandir} \
        --with-mantype=man \
        --disable-strip \
%if %{scard}
        --with-smartcard \
%endif
%if %{rescue}
        --without-pam \
%else
        --with-pam \
%endif
%if %{kerberos5}
         --with-kerberos5=$K5DIR \
%endif

(3.6)编译openssl

yum remove -y openssl openssl-devel
cd /root
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1v.tar.gz -O openssl-1.1.1v.tar.gz --no-check-certificate
tar xzvf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v
#./config --prefix=/usr/local/src/openssl-1.1.1v
./config --prefix=/usr
make
make install

如果没有这一步的话,可能会面临找不到libcrypto
2024-01-23T07:54:03.png

(4)开始编译

rpmbuild -bb ~/rpmbuild/SPECS/openssh.spec

注意,-ba是binary和rpms都编译,-bb只是编译binary。

遇到问题,需要进行如下操作:

wget -O ~/rpmbuild/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz 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

yum install -y glibc-devel gtk2-devel krb5-devel imake libXt-devel gcc pam-devel

2024-01-16T08:30:55.png

打包完成后

rpm文件
2024-01-16T08:31:32.png

这里面的openssh-9.6p1-1.el7.x86_64.rpm openssh-clients-9.6p1-1.el7.x86_64.rpm openssh-server-9.6p1-1.el7.x86_64.rpm 使我们一般情况下用到的升级文件,直接rpm -Uvh 就可以了。
其余的文件看文件名与gnome等有关,直接rpm安装后报各种依赖问题,所以也就不折腾了。

2024-01-16T08:33:15.png

处理安装时碰到的依赖问题openssl-libs

实际安装的时候,依赖openssl,本文开头给出的tar包中已经包括了openssl的版本。

yum reinstall --downloadonly --downloaddir=./ openssh-9.6p1-1.el7.x86_64.rpm openssh-clients-9.6p1-1.el7.x86_64.rpm openssh-server-9.6p1-1.el7.x86_64.rpm
最后修改:2024 年 05 月 11 日
如果觉得我的文章对你有用,请随意赞赏