背景

  1. 前端项目进行安全漏洞扫描,均检测到OpenSSH不同程度的中、高风险漏洞;
  2. 为提高操linux作系统的安全性,现按要求,将 OpenSSH统一编译升级到指定版本:openssh-9.0p1,以此来修复OpenSSH安全漏洞

当前环境信息

# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Sword)# uname -r
4.19.90-24.4.v2101.ky10.aarch64# rpm -qa|grep openssh
openssh-server-8.2p1-9.p03.ky10.aarch64
openssh-clients-8.2p1-9.p03.ky10.aarch64
openssh-8.2p1-9.p03.ky10.aarch64

源码包信息

  • openssh-9.0p1下载地址:

    https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

  • x11-ssh-askpass下载地址:

    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

x11-ssh-askpass-1.2.4.1.tar.gz是在定制openssh-askpass才需要,根据实际情况决定是否构建此RPM包

定制环境准备

  1. 安装编译工具及依赖包

    # dnf -y install rpm-build gcc gcc-c++ glibc glibc-devel  openssl openssl-devel \prce pcre-devel zlib zlib-devel perl perl-devel make imake wget xmkmf \initscripts  krb5-devel pam-devel krb5-devel libX11-devel libXt-devel gtk2-devel
    
  2. 下载源码

    # wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz# 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
    
  3. 查看源码目录

    # ll /root/rpmbuild/
    total 0
    drwxr-xr-x 3 root root 27 Jun  1 21:35 BUILD
    drwxr-xr-x 2 root root  6 Jun  1 21:37 BUILDROOT
    drwxr-xr-x 3 root root 21 Jun  1 21:37 RPMS
    drwxr-xr-x 2 root root 84 Jun  1 20:36 SOURCES
    drwxr-xr-x 2 root root 26 Jun  1 21:34 SPECS
    drwxr-xr-x 2 root root 47 Jun  1 21:37 SRPMS
    
    默认位置 名称 用途
    ~/rpmbuild/BUILD 构建目录 存放源代码解压以后的文件,
    并在该目录的子目录完成编译
    ~/rpmbuild/BUILDROOT 最终安装目录 保存 %install 阶段安装的文件
    ~/rpmbuild/RPMS 标准 RPM 包目录 保存二进制 RPM 包,此目录下会有子目录
    ~/rpmbuild/SOURCES 源代码目录 保存源码包、配置文件和补丁包等
    ~/rpmbuild/SPECS spec 文件目录 保存spec文件,每个rpm包的制作,
    都必须要有一个spec文件,用来
    指导文件。此文件以软件包的名字命名,以spec为扩展名
    ~/rpmbuild/SRPMS src.rpm包目录 保存源码 RPM 包(SRPM)。
  4. 拷贝源码包到相应目录

    # cp openssh-9.0p1.tar.gz  x11-ssh-askpass-1.2.4.1.tar.gz /root/rpmbuild/SOURCES
    
  5. 解压源码包,提取构建spec文件,拷贝openssh.spec文件到SEPCS

    # tar -zxf openssh-9.0p1.tar.gz
    # cp openssh-9.0p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
    

    根据官网默认openssh.spec制作的rpm安装包,在升级时会卸载旧版本openssh并复制源码包中的 ./openssh-9.0p1/contrib/redhat/sshd.pam 以替换/etc/pam.d/sshd,将导致升级后无法登录进系统。故需要手动更改替换文件,替换为想要的内容;

    可以使用Kylin V10 SP2系统自带的/etc/pam.d/sshd原生文件,也可根据需要定制sshd文件内容。Kylin V10 SP2系统自带的/etc/pam.d/sshd原生文件内容如下:

    # cat /etc/pam.d/sshd
    #%PAM-1.0
    auth       substack     password-auth
    auth       include      postlogin
    account    required     pam_sepermit.so
    account    required     pam_nologin.so
    account    include      password-auth
    password   include      password-auth
    # pam_selinux.so close should be the first session rule
    session    required     pam_selinux.so close
    session    required     pam_loginuid.so
    # pam_selinux.so open should only be followed by sessions to be executed in the user context
    session    required     pam_selinux.so open env_params
    session    required     pam_namespace.so
    session    optional     pam_keyinit.so force revoke
    session    optional     pam_motd.so
    session    include      password-auth
    session    include      postlogin

    /etc/pam.d/sshd复制到SOURCES目录

    # cp /etc/pam.d/sshd /root/rpmbuild/SOURCES
    

    rpmbuild目录结构展示:

    # tree -L 2 /root/rpmbuild/
    /root/rpmbuild/
    ├── BUILD
    ├── BUILDROOT
    ├── RPMS
    │   └── aarch64
    ├── SOURCES
    │   ├── openssh-9.0p1.tar.gz # openssh的源码包
    │   ├── sshd #  /etc/pam.d 的认证sshd模块配置文件
    │   └── x11-ssh-askpass-1.2.4.1.tar.gz # x11-ssh-askpass  (可选)
    ├── SPECS
    │   └── openssh.spec
    └── SRPMS
  6. 修改openssh.spec文件

    自带的openssh.spec文件需要做一些修改与优化,为什么要做呢?
    如果不优化,编译候的RPM包安装后,可能出现:

    • root用户 无法登录不上

    • ssh客户端连接不上

    • PAM认证不管用

    • 未编译出ssh-copy-id

      等等问题

    第104行:注释该行,检测openssl版本的,否则构建时会出现报错BuildRequires: openssl-devel < 1.1第 89 行: 添加一个源Source2: sshd
    第280行:更改为从SOURCE目录复制sshd到/etc/pam.d/sshd,注释掉原命令,改为下面行#install -m644 contrib/redhat/sshd.pam     $RPM_BUILD_ROOT/etc/pam.d/sshdinstall -m644 $RPM_SOURCE_DIR/sshd $RPM_BUILD_ROOT/etc/pam.d/sshd   第283行:更改为从contrib目录复制ssh-copy-id到/usr/bin/ssh-copy-id,增加下面这行install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id第 340-341行 这两行需要放在  %pre server 下,为安装前备份内容cp -r /etc/ssh /etc/ssh_bak                     第 345 -353行:  需要放在 %post server后面,表示安装后需要执行的命令1.允许root登录;升级为9.0后默认为不允许root登录2.允许使用PAM登录认证 ;3.允许使用X11Forwarding图形模块;4.增加认证支持(默认openssh 9.0,默认不支持部分低版本的认证模式),不添加会造成低版本的连接器如:CRT等,客户端连接失败5.三个文件 ssh_host_rsa_key、ssh_host_ecdsa_key、ssh_host_ed25519_key 为必要文件,9.0版本缩小了权限,只允许root查看,否者启动sshd服务会报错sed -i -e  "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g"    /etc/ssh/sshd_configsed -i  -e  "s/#UsePAM no/UsePAM yes/g"  /etc/ssh/sshd_configsed -i -e "s/#X11Forwarding no/X11Forwarding yes/g" /etc/ssh/sshd_configecho "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >>/etc/ssh/sshd_configchmod 600 /etc/ssh/ssh_host_rsa_keychmod 600 /etc/ssh/ssh_host_ecdsa_keychmod 600 /etc/ssh/ssh_host_ed25519_key第 397行:  放在%attr(0755,root,root) %{_bindir}/sftp后面,表示安装修改ssh-copy-id的属性
    增加以下行:%attr(0755,root,root) %{_bindir}/ssh-copy-id第 10-15行: 是否生成 x11-askpass、gnome-askpass两个RPM包。可以不选,不选的话就不要 x11-ssh-askpass-1.2.4.1.tar.gz 包;默认生成,我建议选上,万一需要又得再来构建,麻烦
    # Do we want to disable building of x11-askpass? (1=yes 0=no)
    %global no_x11_askpass 0                                          # Do we want to disable building of gnome-askpass? (1=yes 0=no)
    %global no_gnome_askpass 0                                        

    完整的openssh.spec文件如下:

    %global ver 9.0p1
    %global rel 1%{?dist}# OpenSSH privilege separation requires a user & group ID
    %global sshd_uid    74
    %global sshd_gid    74# Version of ssh-askpass
    %global aversion 1.2.4.1# Do we want to disable building of x11-askpass? (1=yes 0=no)
    %global no_x11_askpass 0# Do we want to disable building of gnome-askpass? (1=yes 0=no)
    %global no_gnome_askpass 0# Do we want to link against a static libcrypto? (1=yes 0=no)
    %global static_libcrypto 0# Do we want smartcard support (1=yes 0=no)
    %global scard 0# Use GTK2 instead of GNOME in gnome-ssh-askpass
    %global gtk2 1# Use build6x options for older RHEL builds
    # RHEL 7 not yet supported
    %if 0%{?rhel} > 6
    %global build6x 0
    %else
    %global build6x 1
    %endif%if 0%{?fedora} >= 26
    %global compat_openssl 1
    %else
    %global compat_openssl 0
    %endif# Do we want kerberos5 support (1=yes 0=no)
    %global kerberos5 1# Reserve options to override askpass settings with:
    # rpm -ba|--rebuild --define 'skip_xxx 1'
    %{?skip_x11_askpass:%global no_x11_askpass 1}
    %{?skip_gnome_askpass:%global no_gnome_askpass 1}# Add option to build without GTK2 for older platforms with only GTK+.
    # RedHat <= 7.2 and Red Hat Advanced Server 2.1 are examples.
    # rpm -ba|--rebuild --define 'no_gtk2 1'
    %{?no_gtk2:%global gtk2 0}# Is this a build for RHL 6.x or earlier?
    %{?build_6x:%global build6x 1}# If this is RHL 6.x, the default configuration has sysconfdir in /usr/etc.
    %if %{build6x}
    %global _sysconfdir /etc
    %endif# Options for static OpenSSL link:
    # rpm -ba|--rebuild --define "static_openssl 1"
    %{?static_openssl:%global static_libcrypto 1}# Options for Smartcard support: (needs libsectok and openssl-engine)
    # rpm -ba|--rebuild --define "smartcard 1"
    %{?smartcard:%global scard 1}# Is this a build for the rescue CD (without PAM)? (1=yes 0=no)
    %global rescue 0
    %{?build_rescue:%global rescue 1}# Turn off some stuff for resuce builds
    %if %{rescue}
    %global kerberos5 0
    %endifSummary: The OpenSSH implementation of SSH protocol version 2.
    Name: openssh
    Version: %{ver}
    %if %{rescue}
    Release: %{rel}rescue
    %else
    Release: %{rel}
    %endif
    URL: https://www.openssh.com/portable.html
    Source0: https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
    Source1: http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-%{aversion}.tar.gz
    Source2: sshd
    License: BSD
    Group: Applications/Internet
    BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
    Obsoletes: ssh
    %if %{build6x}
    PreReq: initscripts >= 5.00
    %else
    Requires: initscripts >= 5.20
    %endif
    BuildRequires: perl
    %if %{compat_openssl}
    BuildRequires: compat-openssl10-devel
    %else
    BuildRequires: openssl-devel >= 1.0.1
    #BuildRequires: openssl-devel < 1.1
    %endif
    BuildRequires: /bin/login
    %if ! %{build6x}
    BuildRequires: glibc-devel, pam
    %else
    BuildRequires: /usr/include/security/pam_appl.h
    %endif
    %if ! %{no_x11_askpass}
    BuildRequires: /usr/include/X11/Xlib.h
    # Xt development tools
    BuildRequires: libXt-devel
    # Provides xmkmf
    BuildRequires: imake
    # Rely on relatively recent gtk
    BuildRequires: gtk2-devel
    %endif
    %if ! %{no_gnome_askpass}
    BuildRequires: pkgconfig
    %endif
    %if %{kerberos5}
    BuildRequires: krb5-devel
    BuildRequires: krb5-libs
    %endif%package clients
    Summary: OpenSSH clients.
    Requires: openssh = %{version}-%{release}
    Group: Applications/Internet
    Obsoletes: ssh-clients%package server
    Summary: The OpenSSH server daemon.
    Group: System Environment/Daemons
    Obsoletes: ssh-server
    Requires: openssh = %{version}-%{release}, chkconfig >= 0.9
    %if ! %{build6x}
    Requires: /etc/pam.d/system-auth
    %endif%package askpass
    Summary: A passphrase dialog for OpenSSH and X.
    Group: Applications/Internet
    Requires: openssh = %{version}-%{release}
    Obsoletes: ssh-extras%package askpass-gnome
    Summary: A passphrase dialog for OpenSSH, X, and GNOME.
    Group: Applications/Internet
    Requires: openssh = %{version}-%{release}
    Obsoletes: ssh-extras%description
    SSH (Secure SHell) is a program for logging into and executing
    commands on a remote machine. SSH is intended to replace rlogin and
    rsh, and to provide secure encrypted communications between two
    untrusted hosts over an insecure network. X11 connections and
    arbitrary TCP/IP ports can also be forwarded over the secure channel.OpenSSH is OpenBSD's version of the last free version of SSH, bringing
    it up to date in terms of security and features, as well as removing
    all patented algorithms to separate libraries.This package includes the core files necessary for both the OpenSSH
    client and server. To make this package useful, you should also
    install openssh-clients, openssh-server, or both.%description clients
    OpenSSH is a free version of SSH (Secure SHell), a program for logging
    into and executing commands on a remote machine. This package includes
    the clients necessary to make encrypted connections to SSH servers.
    You'll also need to install the openssh package on OpenSSH clients.%description server
    OpenSSH is a free version of SSH (Secure SHell), a program for logging
    into and executing commands on a remote machine. This package contains
    the secure shell daemon (sshd). The sshd daemon allows SSH clients to
    securely connect to your SSH server. You also need to have the openssh
    package installed.%description askpass
    OpenSSH is a free version of SSH (Secure SHell), a program for logging
    into and executing commands on a remote machine. This package contains
    an X11 passphrase dialog for OpenSSH.%description askpass-gnome
    OpenSSH is a free version of SSH (Secure SHell), a program for logging
    into and executing commands on a remote machine. This package contains
    an X11 passphrase dialog for OpenSSH and the GNOME GUI desktop
    environment.%prep%if ! %{no_x11_askpass}
    %setup -q -a 1
    %else
    %setup -q
    %endif%build
    %if %{rescue}
    CFLAGS="$RPM_OPT_FLAGS -Os"; export CFLAGS
    %endif%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%if %{static_libcrypto}
    perl -pi -e "s|-lcrypto|%{_libdir}/libcrypto.a|g" Makefile
    %endifmake%if ! %{no_x11_askpass}
    pushd x11-ssh-askpass-%{aversion}
    %configure --libexecdir=%{_libexecdir}/openssh
    xmkmf -a
    make
    popd
    %endif# Define a variable to toggle gnome1/gtk2 building.  This is necessary
    # because RPM doesn't handle nested %if statements.
    %if %{gtk2}gtk2=yes
    %elsegtk2=no
    %endif%if ! %{no_gnome_askpass}
    pushd contrib
    if [ $gtk2 = yes ] ; thenmake gnome-ssh-askpass2mv gnome-ssh-askpass2 gnome-ssh-askpass
    elsemake gnome-ssh-askpass1mv gnome-ssh-askpass1 gnome-ssh-askpass
    fi
    popd
    %endif%install
    rm -rf $RPM_BUILD_ROOT
    mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/ssh
    mkdir -p -m755 $RPM_BUILD_ROOT%{_libexecdir}/openssh
    mkdir -p -m755 $RPM_BUILD_ROOT%{_var}/empty/sshdmake install DESTDIR=$RPM_BUILD_ROOTinstall -d $RPM_BUILD_ROOT/etc/pam.d/
    install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
    install -d $RPM_BUILD_ROOT%{_libexecdir}/openssh
    %if %{build6x}
    install -m644 contrib/redhat/sshd.pam.old $RPM_BUILD_ROOT/etc/pam.d/sshd
    %else
    #install -m644 contrib/redhat/sshd.pam     $RPM_BUILD_ROOT/etc/pam.d/sshd
    install -m644 $RPM_SOURCE_DIR/sshd     $RPM_BUILD_ROOT/etc/pam.d/sshd
    %endif
    install -m755 contrib/redhat/sshd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd
    install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id%if ! %{no_x11_askpass}
    install x11-ssh-askpass-%{aversion}/x11-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/x11-ssh-askpass
    ln -s x11-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/ssh-askpass
    %endif%if ! %{no_gnome_askpass}
    install contrib/gnome-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/gnome-ssh-askpass
    %endif%if ! %{scard}rm -f $RPM_BUILD_ROOT/usr/share/openssh/Ssh.bin
    %endif%if ! %{no_gnome_askpass}
    install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
    install -m 755 contrib/redhat/gnome-ssh-askpass.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
    install -m 755 contrib/redhat/gnome-ssh-askpass.sh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
    %endifperl -pi -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT%{_mandir}/man*/*%clean
    rm -rf $RPM_BUILD_ROOT%triggerun server -- ssh-server
    if [ "$1" != 0 -a -r /var/run/sshd.pid ] ; thentouch /var/run/sshd.restart
    fi%triggerun server -- openssh-server < 2.5.0p1
    # Count the number of HostKey and HostDsaKey statements we have.
    gawk    'BEGIN {IGNORECASE=1}/^hostkey/ || /^hostdsakey/ {sawhostkey = sawhostkey + 1}END {exit sawhostkey}' /etc/ssh/sshd_config
    # And if we only found one, we know the client was relying on the old default
    # behavior, which loaded the the SSH2 DSA host key when HostDsaKey wasn't
    # specified.  Now that HostKey is used for both SSH1 and SSH2 keys, specifying
    # one nullifies the default, which would have loaded both.
    if [ $? -eq 1 ] ; thenecho HostKey /etc/ssh/ssh_host_rsa_key >> /etc/ssh/sshd_configecho HostKey /etc/ssh/ssh_host_dsa_key >> /etc/ssh/sshd_config
    fi%triggerpostun server -- ssh-server
    if [ "$1" != 0 ] ; then/sbin/chkconfig --add sshdif test -f /var/run/sshd.restart ; thenrm -f /var/run/sshd.restart/sbin/service sshd start > /dev/null 2>&1 || :fi
    fi%pre server
    %{_sbindir}/groupadd -r -g %{sshd_gid} sshd 2>/dev/null || :
    %{_sbindir}/useradd -d /var/empty/sshd -s /bin/false -u %{sshd_uid} \-g sshd -M -r sshd 2>/dev/null || :
    cp -r /etc/ssh /etc/ssh_bak%post server
    /sbin/chkconfig --add sshd
    sed -i -e  "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g"    /etc/ssh/sshd_config
    sed -i  -e  "s/#UsePAM no/UsePAM yes/g"  /etc/ssh/sshd_config
    sed -i -e "s/#X11Forwarding no/X11Forwarding yes/g" /etc/ssh/sshd_config
    echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >>/etc/ssh/sshd_config
    chmod 600 /etc/ssh/ssh_host_rsa_key
    chmod 600 /etc/ssh/ssh_host_ecdsa_key
    chmod 600 /etc/ssh/ssh_host_ed25519_key%postun server
    /sbin/service sshd condrestart > /dev/null 2>&1 || :%preun server
    if [ "$1" = 0 ]
    then/sbin/service sshd stop > /dev/null 2>&1 || :/sbin/chkconfig --del sshd
    fi%files
    %defattr(-,root,root)
    %doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* PROTOCOL* TODO
    %attr(0755,root,root) %{_bindir}/scp
    %attr(0644,root,root) %{_mandir}/man1/scp.1*
    %attr(0755,root,root) %dir %{_sysconfdir}/ssh
    %attr(0600,root,root) %config(noreplace) %{_sysconfdir}/ssh/moduli
    %if ! %{rescue}
    %attr(0755,root,root) %{_bindir}/ssh-keygen
    %attr(0644,root,root) %{_mandir}/man1/ssh-keygen.1*
    %attr(0755,root,root) %dir %{_libexecdir}/openssh
    %attr(4711,root,root) %{_libexecdir}/openssh/ssh-keysign
    %attr(0755,root,root) %{_libexecdir}/openssh/ssh-pkcs11-helper
    %attr(0755,root,root) %{_libexecdir}/openssh/ssh-sk-helper
    %attr(0644,root,root) %{_mandir}/man8/ssh-keysign.8*
    %attr(0644,root,root) %{_mandir}/man8/ssh-pkcs11-helper.8*
    %attr(0644,root,root) %{_mandir}/man8/ssh-sk-helper.8*
    %endif
    %if %{scard}
    %attr(0755,root,root) %dir %{_datadir}/openssh
    %attr(0644,root,root) %{_datadir}/openssh/Ssh.bin
    %endif%files clients
    %defattr(-,root,root)
    %attr(0755,root,root) %{_bindir}/ssh
    %attr(0644,root,root) %{_mandir}/man1/ssh.1*
    %attr(0644,root,root) %{_mandir}/man5/ssh_config.5*
    %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config
    %if ! %{rescue}
    %attr(2755,root,nobody) %{_bindir}/ssh-agent
    %attr(0755,root,root) %{_bindir}/ssh-add
    %attr(0755,root,root) %{_bindir}/ssh-keyscan
    %attr(0755,root,root) %{_bindir}/sftp
    %attr(0755,root,root) %{_bindir}/ssh-copy-id
    %attr(0644,root,root) %{_mandir}/man1/ssh-agent.1*
    %attr(0644,root,root) %{_mandir}/man1/ssh-add.1*
    %attr(0644,root,root) %{_mandir}/man1/ssh-keyscan.1*
    %attr(0644,root,root) %{_mandir}/man1/sftp.1*
    %endif%if ! %{rescue}
    %files server
    %defattr(-,root,root)
    %dir %attr(0111,root,root) %{_var}/empty/sshd
    %attr(0755,root,root) %{_sbindir}/sshd
    %attr(0755,root,root) %{_libexecdir}/openssh/sftp-server
    %attr(0644,root,root) %{_mandir}/man8/sshd.8*
    %attr(0644,root,root) %{_mandir}/man5/moduli.5*
    %attr(0644,root,root) %{_mandir}/man5/sshd_config.5*
    %attr(0644,root,root) %{_mandir}/man8/sftp-server.8*
    %attr(0755,root,root) %dir %{_sysconfdir}/ssh
    %attr(0600,root,root) %config(noreplace) %{_sysconfdir}/ssh/sshd_config
    %attr(0600,root,root) %config(noreplace) /etc/pam.d/sshd
    %attr(0755,root,root) %config /etc/rc.d/init.d/sshd
    %endif%if ! %{no_x11_askpass}
    %files askpass
    %defattr(-,root,root)
    %doc x11-ssh-askpass-%{aversion}/README
    %doc x11-ssh-askpass-%{aversion}/ChangeLog
    %doc x11-ssh-askpass-%{aversion}/SshAskpass*.ad
    %{_libexecdir}/openssh/ssh-askpass
    %attr(0755,root,root) %{_libexecdir}/openssh/x11-ssh-askpass
    %endif%if ! %{no_gnome_askpass}
    %files askpass-gnome
    %defattr(-,root,root)
    %attr(0755,root,root) %config %{_sysconfdir}/profile.d/gnome-ssh-askpass.*
    %attr(0755,root,root) %{_libexecdir}/openssh/gnome-ssh-askpass
    %endif%changelog
    * Thu Oct 28 2021 Damien Miller <djm@mindrot.org>
    - Remove remaining traces of --with-md5-passwords* Mon Jul 20 2020 Damien Miller <djm@mindrot.org>
    - Add ssh-sk-helper and corresponding manual page.* Sat Feb 10 2018 Darren Tucker <dtucker@dtucker.net>
    - Update openssl-devel dependency to match current requirements.
    - Handle Fedora >=6 openssl 1.0 compat libs.
    - Remove SSH1 from description.
    - Don't strip binaries at build time so that debuginfo package can becreated.* Sun Nov 16 2014 Nico Kadel-Garcia <nakdel@gmail.com>
    - Add '--mandir' and '--with-mantype' for RHEL 5 compatibility
    - Add 'dist' option to 'ver' so package names reflect OS at build time
    - Always include x11-ssh-askpass tarball in SRPM
    - Add openssh-x11-aspass BuildRequires for libXT-devel, imake, gtk2-devel
    - Discard 'K5DIR' reporting, not usable inside 'mock' for RHEL 5 compatibility
    - Discard obsolete '--with-rsh' configure option
    - Update openssl-devel dependency to 0.9.8f, as found in autoconf* Wed Jul 14 2010 Tim Rice <tim@multitalents.net>
    - test for skip_x11_askpass (line 77) should have been for no_x11_askpass* Mon Jun 2 2003 Damien Miller <djm@mindrot.org>
    - Remove noip6 option. This may be controlled at run-time in client configfile using new AddressFamily directive* Mon May 12 2003 Damien Miller <djm@mindrot.org>
    - Don't install profile.d scripts when not building with GNOME/GTK askpass(patch from bet@rahul.net)* Tue Oct 01 2002 Damien Miller <djm@mindrot.org>
    - Install ssh-agent setgid nobody to prevent ptrace() key theft attacks* Mon Sep 30 2002 Damien Miller <djm@mindrot.org>
    - Use contrib/ Makefile for building askpass programs* Fri Jun 21 2002 Damien Miller <djm@mindrot.org>
    - Merge in spec changes from seba@iq.pl (Sebastian Pachuta)
    - Add new {ssh,sshd}_config.5 manpages
    - Add new ssh-keysign program and remove setuid from ssh client* Fri May 10 2002 Damien Miller <djm@mindrot.org>
    - Merge in spec changes from RedHat, reorgansie a little
    - Add Privsep user, group and directory* Thu Mar  7 2002 Nalin Dahyabhai <nalin@redhat.com> 3.1p1-2
    - bump and grind (through the build system)* Thu Mar  7 2002 Nalin Dahyabhai <nalin@redhat.com> 3.1p1-1
    - require sharutils for building (mindrot #137)
    - require db1-devel only when building for 6.x (#55105), which probably won'twork anyway (3.1 requires OpenSSL 0.9.6 to build), but what the heck
    - require pam-devel by file (not by package name) again
    - add Markus's patch to compile with OpenSSL 0.9.5a (fromhttp://bugzilla.mindrot.org/show_bug.cgi?id=141) and apply it if we'rebuilding for 6.x* Thu Mar  7 2002 Nalin Dahyabhai <nalin@redhat.com> 3.1p1-0
    - update to 3.1p1* Tue Mar  5 2002 Nalin Dahyabhai <nalin@redhat.com> SNAP-20020305
    - update to SNAP-20020305
    - drop debug patch, fixed upstream* Wed Feb 20 2002 Nalin Dahyabhai <nalin@redhat.com> SNAP-20020220
    - update to SNAP-20020220 for testing purposes (you've been warned, if there'sanything to be warned about, gss patches won't apply, I don't mind)* Wed Feb 13 2002 Nalin Dahyabhai <nalin@redhat.com> 3.0.2p1-3
    - add patches from Simon Wilkinson and Nicolas Williams for GSSAPI keyexchange, authentication, and named key support* Wed Jan 23 2002 Nalin Dahyabhai <nalin@redhat.com> 3.0.2p1-2
    - remove dependency on db1-devel, which has just been swallowed up wholeby gnome-libs-devel* Sat Dec 29 2001 Nalin Dahyabhai <nalin@redhat.com>
    - adjust build dependencies so that build6x actually works right (fixfrom Hugo van der Kooij)* Tue Dec  4 2001 Nalin Dahyabhai <nalin@redhat.com> 3.0.2p1-1
    - update to 3.0.2p1* Fri Nov 16 2001 Nalin Dahyabhai <nalin@redhat.com> 3.0.1p1-1
    - update to 3.0.1p1* Tue Nov 13 2001 Nalin Dahyabhai <nalin@redhat.com>
    - update to current CVS (not for use in distribution)* Thu Nov  8 2001 Nalin Dahyabhai <nalin@redhat.com> 3.0p1-1
    - merge some of Damien Miller <djm@mindrot.org> changes from the upstream3.0p1 spec file and init script* Wed Nov  7 2001 Nalin Dahyabhai <nalin@redhat.com>
    - update to 3.0p1
    - update to x11-ssh-askpass 1.2.4.1
    - change build dependency on a file from pam-devel to the pam-devel package
    - replace primes with moduli* Thu Sep 27 2001 Nalin Dahyabhai <nalin@redhat.com> 2.9p2-9
    - incorporate fix from Markus Friedl's advisory for IP-based authorization bugs* Thu Sep 13 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.9p2-8
    - Merge changes to rescue build from current sysadmin survival cd* Thu Sep  6 2001 Nalin Dahyabhai <nalin@redhat.com> 2.9p2-7
    - fix scp's server's reporting of file sizes, and build with the properpreprocessor define to get large-file capable open(), stat(), etc.(sftp has been doing this correctly all along) (#51827)
    - configure without --with-ipv4-default on RHL 7.x and newer (#45987,#52247)
    - pull cvs patch to fix support for /etc/nologin for non-PAM logins (#47298)
    - mark profile.d scriptlets as config files (#42337)
    - refer to Jason Stone's mail for zsh workaround for exit-hanging quasi-bug
    - change a couple of log() statements to debug() statements (#50751)
    - pull cvs patch to add -t flag to sshd (#28611)
    - clear fd_sets correctly (one bit per FD, not one byte per FD) (#43221)* Mon Aug 20 2001 Nalin Dahyabhai <nalin@redhat.com> 2.9p2-6
    - add db1-devel as a BuildPrerequisite (noted by Hans Ecke)* Thu Aug 16 2001 Nalin Dahyabhai <nalin@redhat.com>
    - pull cvs patch to fix remote port forwarding with protocol 2* Thu Aug  9 2001 Nalin Dahyabhai <nalin@redhat.com>
    - pull cvs patch to add session initialization to no-pty sessions
    - pull cvs patch to not cut off challengeresponse auth needlessly
    - refuse to do X11 forwarding if xauth isn't there, handy if you enableit by default on a system that doesn't have X installed (#49263)* Wed Aug  8 2001 Nalin Dahyabhai <nalin@redhat.com>
    - don't apply patches to code we don't intend to build (spotted by Matt Galgoci)* Mon Aug  6 2001 Nalin Dahyabhai <nalin@redhat.com>
    - pass OPTIONS correctly to initlog (#50151)* Wed Jul 25 2001 Nalin Dahyabhai <nalin@redhat.com>
    - switch to x11-ssh-askpass 1.2.2* Wed Jul 11 2001 Nalin Dahyabhai <nalin@redhat.com>
    - rebuild in new environment* Mon Jun 25 2001 Nalin Dahyabhai <nalin@redhat.com>
    - disable the gssapi patch* Mon Jun 18 2001 Nalin Dahyabhai <nalin@redhat.com>
    - update to 2.9p2
    - refresh to a new version of the gssapi patch* Thu Jun  7 2001 Nalin Dahyabhai <nalin@redhat.com>
    - change Copyright: BSD to License: BSD
    - add Markus Friedl's unverified patch for the cookie file deletion problemso that we can verify it
    - drop patch to check if xauth is present (was folded into cookie patch)
    - don't apply gssapi patches for the errata candidate
    - clear supplemental groups list at startup* Fri May 25 2001 Nalin Dahyabhai <nalin@redhat.com>
    - fix an error parsing the new default sshd_config
    - add a fix from Markus Friedl (via openssh-unix-dev) for ssh-keygen notdealing with comments right* Thu May 24 2001 Nalin Dahyabhai <nalin@redhat.com>
    - add in Simon Wilkinson's GSSAPI patch to give it some testing in-house,to be removed before the next beta cycle because it's a big departurefrom the upstream version* Thu May  3 2001 Nalin Dahyabhai <nalin@redhat.com>
    - finish marking strings in the init script for translation
    - modify init script to source /etc/sysconfig/sshd and pass $OPTIONS to sshdat startup (change merged from openssh.com init script, originally byPekka Savola)
    - refuse to do X11 forwarding if xauth isn't there, handy if you enableit by default on a system that doesn't have X installed* Wed May  2 2001 Nalin Dahyabhai <nalin@redhat.com>
    - update to 2.9
    - drop various patches that came from or went upstream or to or from CVS* Wed Apr 18 2001 Nalin Dahyabhai <nalin@redhat.com>
    - only require initscripts 5.00 on 6.2 (reported by Peter Bieringer)* Sun Apr  8 2001 Preston Brown <pbrown@redhat.com>
    - remove explicit openssl requirement, fixes builddistro issue
    - make initscript stop() function wait until sshd really dead to avoidraces in condrestart* Mon Apr  2 2001 Nalin Dahyabhai <nalin@redhat.com>
    - mention that challengereponse supports PAM, so disabling password doesn'tlimit users to pubkey and rsa auth (#34378)
    - bypass the daemon() function in the init script and call initlog directly,because daemon() won't start a daemon it detects is already running (likeopen connections)
    - require the version of openssl we had when we were built* Fri Mar 23 2001 Nalin Dahyabhai <nalin@redhat.com>
    - make do_pam_setcred() smart enough to know when to establish creds andwhen to reinitialize them
    - add in a couple of other fixes from Damien for inclusion in the errata* Thu Mar 22 2001 Nalin Dahyabhai <nalin@redhat.com>
    - update to 2.5.2p2
    - call setcred() again after initgroups, because the "creds" could actuallybe group memberships* Tue Mar 20 2001 Nalin Dahyabhai <nalin@redhat.com>
    - update to 2.5.2p1 (includes endianness fixes in the rijndael implementation)
    - don't enable challenge-response by default until we find a way to nothave too many userauth requests (we may make up to six pubkey and up tothree password attempts as it is)
    - remove build dependency on rsh to match openssh.com's packages more closely* Sat Mar  3 2001 Nalin Dahyabhai <nalin@redhat.com>
    - remove dependency on openssl -- would need to be too precise* Fri Mar  2 2001 Nalin Dahyabhai <nalin@redhat.com>
    - rebuild in new environment* Mon Feb 26 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Revert the patch to move pam_open_session.
    - Init script and spec file changes from Pekka Savola. (#28750)
    - Patch sftp to recognize '-o protocol' arguments. (#29540)* Thu Feb 22 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Chuck the closing patch.
    - Add a trigger to add host keys for protocol 2 to the config file, now thatconfiguration file syntax requires us to specify it with HostKey if wespecify any other HostKey values, which we do.* Tue Feb 20 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Redo patch to move pam_open_session after the server setuid()s to the user.
    - Rework the nopam patch to use be picked up by autoconf.* Mon Feb 19 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Update for 2.5.1p1.
    - Add init script mods from Pekka Savola.
    - Tweak the init script to match the CVS contrib script more closely.
    - Redo patch to ssh-add to try to adding both identity and id_dsa to also tryadding id_rsa.* Fri Feb 16 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Update for 2.5.0p1.
    - Use $RPM_OPT_FLAGS instead of -O when building gnome-ssh-askpass
    - Resync with parts of Damien Miller's openssh.spec from CVS, includingupdate of x11 askpass to 1.2.0.
    - Only require openssl (don't prereq) because we generate keys in the initscript now.* Tue Feb 13 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Don't open a PAM session until we've forked and become the user (#25690).
    - Apply Andrew Bartlett's patch for letting pam_authenticate() know whichhost the user is attempting a login from.
    - Resync with parts of Damien Miller's openssh.spec from CVS.
    - Don't expose KbdInt responses in debug messages (from CVS).
    - Detect and handle errors in rsa_{public,private}_decrypt (from CVS).* Wed Feb  7 2001 Trond Eivind Glomsrxd <teg@redhat.com>
    - i18n-tweak to initscript.* Tue Jan 23 2001 Nalin Dahyabhai <nalin@redhat.com>
    - More gettextizing.
    - Close all files after going into daemon mode (needs more testing).
    - Extract patch from CVS to handle auth banners (in the client).
    - Extract patch from CVS to handle compat weirdness.* Fri Jan 19 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Finish with the gettextizing.* Thu Jan 18 2001 Nalin Dahyabhai <nalin@redhat.com>
    - Fix a bug in auth2-pam.c (#23877)
    - Gettextize the init script.* Wed Dec 20 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Incorporate a switch for using PAM configs for 6.x, just in case.* Tue Dec  5 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Incorporate Bero's changes for a build specifically for rescue CDs.* Wed Nov 29 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Don't treat pam_setcred() failure as fatal unless pam_authenticate() hassucceeded, to allow public-key authentication after a failure with "none"authentication.  (#21268)* Tue Nov 28 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to x11-askpass 1.1.1. (#21301)
    - Don't second-guess fixpaths, which causes paths to get fixed twice. (#21290)* Mon Nov 27 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Merge multiple PAM text messages into subsequent prompts when possible whendoing keyboard-interactive authentication.* Sun Nov 26 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Disable the built-in MD5 password support.  We're using PAM.
    - Take a crack at doing keyboard-interactive authentication with PAM, andenable use of it in the default client configuration so that the clientwill try it when the server disallows password authentication.
    - Build with debugging flags.  Build root policies strip all binaries anyway.* Tue Nov 21 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Use DESTDIR instead of %%makeinstall.
    - Remove /usr/X11R6/bin from the path-fixing patch.* Mon Nov 20 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Add the primes file from the latest snapshot to the main package (#20884).
    - Add the dev package to the prereq list (#19984).
    - Remove the default path and mimic login's behavior in the server itself.* Fri Nov 17 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Resync with conditional options in Damien Miller's .spec file for an errata.
    - Change libexecdir from %%{_libexecdir}/ssh to %%{_libexecdir}/openssh.* Tue Nov  7 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to OpenSSH 2.3.0p1.
    - Update to x11-askpass 1.1.0.
    - Enable keyboard-interactive authentication.* Mon Oct 30 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to ssh-askpass-x11 1.0.3.
    - Change authentication related messages to be private (#19966).* Tue Oct 10 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Patch ssh-keygen to be able to list signatures for DSA public key filesit generates.* Thu Oct  5 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Add BuildRequires on /usr/include/security/pam_appl.h to be sure we alwaysbuild PAM authentication in.
    - Try setting SSH_ASKPASS if gnome-ssh-askpass is installed.
    - Clean out no-longer-used patches.
    - Patch ssh-add to try to add both identity and id_dsa, and to error onlywhen neither exists.* Mon Oct  2 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update x11-askpass to 1.0.2. (#17835)
    - Add BuildRequiress for /bin/login and /usr/bin/rsh so that configure willalways find them in the right place. (#17909)
    - Set the default path to be the same as the one supplied by /bin/login, butadd /usr/X11R6/bin. (#17909)
    - Try to handle obsoletion of ssh-server more cleanly.  Package namesare different, but init script name isn't. (#17865)* Wed Sep  6 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to 2.2.0p1. (#17835)
    - Tweak the init script to allow proper restarting. (#18023)* Wed Aug 23 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to 20000823 snapshot.
    - Change subpackage requirements from %%{version} to %%{version}-%%{release}
    - Back out the pipe patch.* Mon Jul 17 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to 2.1.1p4, which includes fixes for config file parsing problems.
    - Move the init script back.
    - Add Damien's quick fix for wackiness.* Wed Jul 12 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to 2.1.1p3, which includes fixes for X11 forwarding and strtok().* Thu Jul  6 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Move condrestart to server postun.
    - Move key generation to init script.
    - Actually use the right patch for moving the key generation to the init script.
    - Clean up the init script a bit.* Wed Jul  5 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Fix X11 forwarding, from mail post by Chan Shih-Ping Richard.* Sun Jul  2 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to 2.1.1p2.
    - Use of strtok() considered harmful.* Sat Jul  1 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Get the build root out of the man pages.* Thu Jun 29 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Add and use condrestart support in the init script.
    - Add newer initscripts as a prereq.* Tue Jun 27 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Build in new environment (release 2)
    - Move -clients subpackage to Applications/Internet group* Fri Jun  9 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Update to 2.2.1p1* Sat Jun  3 2000 Nalin Dahyabhai <nalin@redhat.com>
    - Patch to build with neither RSA nor RSAref.
    - Miscellaneous FHS-compliance tweaks.
    - Fix for possibly-compressed man pages.* Wed Mar 15 2000 Damien Miller <djm@ibs.com.au>
    - Updated for new location
    - Updated for new gnome-ssh-askpass build* Sun Dec 26 1999 Damien Miller <djm@mindrot.org>
    - Added Jim Knoble's <jmknoble@pobox.com> askpass* Mon Nov 15 1999 Damien Miller <djm@mindrot.org>
    - Split subpackages further based on patch from jim knoble <jmknoble@pobox.com>* Sat Nov 13 1999 Damien Miller <djm@mindrot.org>
    - Added 'Obsoletes' directives* Tue Nov 09 1999 Damien Miller <djm@ibs.com.au>
    - Use make install
    - Subpackages* Mon Nov 08 1999 Damien Miller <djm@ibs.com.au>
    - Added links for slogin
    - Fixed perms on manpages* Sat Oct 30 1999 Damien Miller <djm@ibs.com.au>
    - Renamed init script* Fri Oct 29 1999 Damien Miller <djm@ibs.com.au>
    - Back to old binary names* Thu Oct 28 1999 Damien Miller <djm@ibs.com.au>
    - Use autoconf
    - New binary names* Wed Oct 27 1999 Damien Miller <djm@ibs.com.au>
    - Initial RPMification, based on Jan "Yenya" Kasprzak's <kas@fi.muni.cz> spec.
  7. 构建rpm包,构建完成后显示+ exit 0 ,表示构建成功

    # cd /root/rpmbuild/SPECS
    # rpmbuild -ba openssh.spec
    # tree -L 2 /root/rpmbuild/RPMS/
    /root/rpmbuild/RPMS/
    └── aarch64├── openssh-9.0p1-1.ky10.ky10.aarch64.rpm├── openssh-askpass-9.0p1-1.ky10.ky10.aarch64.rpm├── openssh-askpass-gnome-9.0p1-1.ky10.ky10.aarch64.rpm├── openssh-clients-9.0p1-1.ky10.ky10.aarch64.rpm├── openssh-debuginfo-9.0p1-1.ky10.ky10.aarch64.rpm├── openssh-debugsource-9.0p1-1.ky10.ky10.aarch64.rpm└── openssh-server-9.0p1-1.ky10.ky10.aarch64.rpm
  8. 安装、升级

    • 使用 yum -y localinstall(可自动通过yum下载依赖)
    • 使用rpm -Uvh ./openssh-*.rpm

    注意:

    升级 openssh时,若存在旧openssh-clients时,必须同时安装 以下三个包,否则会报错,因为三个包间存在相互依赖。若系统只有 opensshopenssh-server ,在升级时 openssh-clients是可选,非必要安装,只需要 openssh-9.0p1-1.ky10.ky10.aarch64.rpmopenssh-server-9.0p1-1.ky10.ky10.aarch64.rpm 两个包;

    # yum localinstall openssh-9.0p1-1.ky10.ky10.aarch64.rpm  openssh-server-9.0p1-1.ky10.ky10.aarch64.rpm  openssh-clients-9.0p1-1.ky10.ky10.aarch64.rpm
    
  9. 验证版本

    # ssh -V
    OpenSSH_9.0p1, OpenSSL 1.1.1f  31 Mar 2020
    

参考链接

  • https://blog.csdn.net/qq_34777982/article/details/124665093
  • https://www.jianshu.com/p/0882b0502960
  • https://blog.csdn.net/qq_34777982/article/details/124748969

Kylin V10 SP2 定制openssh 9.0 rpm包相关推荐

  1. 【银河麒麟V10 SP2 x86安装mysql8.0.29】

    目录 前言 一.Mysql是什么? 二.在线安装步骤 1.下载Mysql8.0.29源 2.安装源文件 3.安装Mysql-8.0.29 4.启动Mysql 5.查看默认密码 6.初始化 前言 在关系 ...

  2. 国产麒麟系统KylinOS Server V10 SP2安装MySQL 8.0.28—RPM包安装

    最近工作重点转向信创领域后就开始研究国产化操作系统对各种数据库的适配方案,期间发现一些很有价值的内容,特意整理成文章分享出来. 此文档讲述如何在国产麒麟操作系统KylinOS Server V10 S ...

  3. 银河麒麟高级服务器v10 sp2 下fpm工具打包rpm

    一.当前操作系统版本 二.安装fpm 2.1 安装ruby及依赖 yum install ruby rubygems ruby-devel rpm-build 2.2 添加阿里云rubygems仓库 ...

  4. linux内核中cent文件夹,Centos 中如何快速定制二进制的内核 RPM 包

    1.rpm 制作前的环境准备: yum install -y ncurses-devel qt-devel rpm-build redhat-rpm-config asciidoc hmaccalc ...

  5. Centos 中如何快速定制二进制的内核 RPM 包

    1.rpm 制作前的环境准备: yum install -y ncurses-devel qt-devel rpm-build redhat-rpm-config asciidoc hmaccalc ...

  6. CentOS 7.6 MySQL 8.0 RPM包方式安装及新特性介绍

    一.MySQL 8.0新特性: 1.默认字符集由latin1变为utf8mb4 2.MyISAM系统表全部换成InnoDB表 3.自增主键AUTO_INCREMENT的值支持持久化 4.InnoDB表 ...

  7. mysql rpm 安装6_CentOS 7.6 MySQL 8.0 RPM包方式安装及新特性介绍

    一.MySQL 8.0新特性: 1.默认字符集由latin1变为utf8mb4 2.MyISAM系统表全部换成InnoDB表 3.自增主键AUTO_INCREMENT的值支持持久化 4.InnoDB表 ...

  8. 实战演练:MySQL RPM包定制化制作全过程

    墨墨导读:本文详细介绍一键式安装部署,定制化制作MySQL RPM包的过程,希望可以帮助到读者朋友 . 在部署MySQL的时候,经常用RPM包简易安装.非常快,也非常有效. rpm的全称是Redhat ...

  9. 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路

    前面写了一些文章,关于利用官方源码编译或者制作rpm包来升级openssh,修复安全漏洞 centos 7 制作openssh8.7/8.8/8.9/9.0 p1 rpm包升级--筑梦之路_筑梦之路的 ...

  10. linux内核源码制作rpm包,cmatrix源码包制作rpm包

    第一步:下载cmatrix.tar.gz(包含有已写好的cmatrix.spec文件) 第二步:检测编译环境: # yum isntall gcc gcc-c++ make rpm-bulid # r ...

最新文章

  1. 2021年大数据Flink(十七):Flink四大基石
  2. jupyter|魔法函数问题| UsageError: Line magic function `%` not found
  3. Day14 自己定义泛型类的使用
  4. MVC HtmlHelper用法大全
  5. 如何找出SQL中的重复记录
  6. redis-2.8.17安装指导(自己做测试了)
  7. ActiveMQ源码解析 建立连接
  8. react学习(50)--解决异步执行顺序问题
  9. 【Flink】Flink 基于事件序列最大值 AssignerWithPeriodicWatermarks
  10. 九章算法--寻找数组波峰
  11. 基于Vue.js 2.x系列 + Element UI + RBAC/AUTH权限 的响应式后台管理系统
  12. DOTA版设计模式——责任链
  13. 三维空间内任意三点坐标求圆心、半径
  14. 在线广告结算方式与ecpm估计关系
  15. ubuntu修改桌面主文件夹为英文
  16. Unifying Voxel-based Representation with Transformer for 3D Object Detection (UVTR)论文笔记
  17. 从零开始实现mini-min网易云音乐(一)
  18. 摄像头安装指南( spca5xx)
  19. HyperLPR车牌识别库代码分析(9)
  20. 翻译翻译,什么是CAP

热门文章

  1. CMMI5认证必备条件
  2. Linux之镜像下载
  3. c51单片机编程实例c语言,C51单片机C语言编程基础和实例
  4. python参考手册 第二章
  5. windows系统ping包显示时间(绝对好用)
  6. 高级项目管理师/高项考试十大管理论文模板
  7. html网页毕业论文,HTML网页设计毕业论文.pdf
  8. 凸二次规划的解法(旋转算法)
  9. 双击java安装包没有反应_eclipse安装包双击没反应怎么回事?
  10. 五分钟带你了解什么是PID模糊算法