openEuler升级openssh

环境介绍

  1. 操作系统版本:openEuler-22.03-LTS-SP1
  2. 需要升级到的openssh版本:openssh-9.2p1

升级思路

  • 下载源码包,在虚拟机中制作rpm包。
  • 将制作好的rpm包,放到其他机器中去使用。

这样做的好处是:所处环境中有很多主机时能够快速完成升级。

制作rpm包

搭建本地yum源

制作本地yum源,方便后续安装相关依赖包。

  1. 挂载系统镜像

     

     

  2. 创建本地yum源
     1 #创建挂载路径
     2 mkdir /iso
     3 #挂载镜像
     4 mount /dev/cdrom /iso/
     5 #查看是否挂载成功
     6 [root@localhost ~]# ls /iso
     7 docs  EFI  images  isolinux  ks  Packages  repodata  RPM-GPG-KEY-openEuler  TRANS.TBL
     8 #创建yum文件
     9 cat >> /etc/yum.repos.d/local.repo  << EOF
    10 [local]
    11 name=local
    12 baseurl = file:///iso
    13 enable=1
    14 gpgcheck=0
    15 EOF
    16 #检查yum是否配置成功
    17 [root@localhost ~]# yum repolist
    18 [root@localhost ~]# yum repolist
    19 repo id                                                                            repo name
    20 local                                                                              local

制作RPM

  1. 安装依赖包
    yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz  
  2. 创建rpm制作的相关目录
    mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}  
  3. 下载openssh9.2p1和x11-ssh-askpass-1.2.4.1.tar.gz
    1 #将下载的文件放入SOURCES文件夹下
    2 cd /root/rpmbuild/SOURCES/
    3 #下载openssh9.2p1
    4 wget  https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz
    5 #下载x11-ssh-askpass-1.2.4.1.tar.gz
    6 wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz
  4. 重新制作openssh压缩包
    因为下载的包缺一个sshd.pam.old,需要将现在系统的/etc/pam.d/sshd,拷到编译的目录中。如果没有改文件,后续编译会报错。
    1 tar -xvzf openssh-9.2p1.tar.gz
    2 cd /root/rpmbuild/SOURCES/openssh-9.2p1
    3 cp /etc/pam.d/sshd /root/rpmbuild/SOURCES/openssh-9.2p1/contrib/redhat/sshd.pam.old
    4 #回到SOURCE目录,重新tar包
    5 cd ..
    6 tar -zcpf openssh-9.2p1.tar.gz openssh-9.2p1
  5. 修改openssh.spec配置
     1 #将openssh.spec配置文件拷贝到,编译目录下
     2 cp /root/rpmbuild/SOURCES/openssh-9.2p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
     3 cd /root/rpmbuild/SPECS
     4 
     5 #修改openssh.spec配置
     6 #1.不生成askpass包
     7 cat /root/rpmbuild/SPECS/openssh.spec | grep no_gnome_askpass
     8 cat /root/rpmbuild/SPECS/openssh.spec | grep no_x11_askpass
     9 
    10 sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
    11 sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec
    12 
    13 #2.解决openssl-devel < 1.1报错
    14 cat /root/rpmbuild/SPECS/openssh.spec | grep openssl-devel
    15 sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec
    16 
    17 #3.解决PreReq报错
    18 cat /root/rpmbuild/SPECS/openssh.spec | grep PreReq
    19 sed -i '/PreReq/s/^/#/' openssh.spec
    20 
    21 #4.解决Obsoletes报错
    22 cat /root/rpmbuild/SPECS/openssh.spec | grep Obsoletes
    23 sed -i '/Obsoletes:/s/^/#/' openssh.spec
  6. 编译源码包,制作成rpm包
    cd /root/rpmbuild/SPECS/
    rpmbuild -ba openssh.spec
    
    #编译完成后的软件在,debug的包不用下载安装
    ls /root/rpmbuild/RPMS/x86_64/

升级openssh

下载制作好的rpm后,上传到其他主机升级openssh。

yum localinstall openssh-9.2p1-1.x86_64.rpm openssh-server-9.2p1-1.x86_64.rpm openssh-clients-9.2p1-1.x86_64.rpm -y

检查sshd的配置文件是否正常。

[root@localhost x86_64]# sshd -t
/etc/ssh/sshd_config line 142: Deprecated option RSAAuthentication
/etc/ssh/sshd_config line 144: Deprecated option RhostsRSAAuthentication
/etc/ssh/sshd_config: line 159: Bad configuration option: GSSAPIKexAlgorithms
/etc/ssh/sshd_config: terminating, 1 bad configuration options 

报错159有问题,将/etc/ssh/sshd_config第159行配置注释掉。重启sshd服务。

[root@localhost x86_64]# cat -n /etc/ssh/sshd_config
159  #GSSAPIKexAlgorithms gss-group14-sha256-,gss-group16-sha512-,gss-curve25519-sha256-
systemctl restart sshd

测试ssh测试登陆是否正常。  

posted @ 2023-03-25 15:52  cyrnic  阅读(1979)  评论(0编辑  收藏  举报