Linux安装升级服务:OpenSSH

1、安装 OpenSSH 说明

1.1 安装环境

  • 虚拟机环境

    虚拟机环境OpenSSH版本OpenSSL版本
    升级前linux CentOSOpenSSH_7.4p1OpenSSL 1.0.2k
    升级方案一linux CentOSOpenSSH_9.3p1OpenSSL 1.0.2k
    升级方案二linux CentOSOpenSSH_9.5p1OpenSSL 1.1.1k/w
  • 下载地址

  • 注意事项

    • 升级前务必保证虚拟机已经打快照或备份。
    • 注意:升级过程全程不要关闭xshell窗口!!!关闭后将无法ssh登录。
    • 注意:提前将openssh和openssl安装包上传到虚拟机!!!卸载ssh后将无法上传。
    • 注意:升级openssh后检查服务器ulimit值!!!
    • 此次升级以“升级方案二”为准,进行 OpenSSH 和 OpenSSL 服务的安装升级

1.2 安装准备

  • 查看当前openssh版本,并上传 openssh-9.5p1.tar.gz/opt/openssh 目录

    $ ssh -V									# 查看Openssh版本
    OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
    
  • 为方便统一管理建议安装包统一上传至如下目录:

    (1)openssh 服务:/opt/openssh
    (2)openssl 服务:/opt/openssl

  • 查看是否关闭selinux

    $ getenforce 						# 查看状态
    Disabled
    $ setenforce 0 						# 临时关闭
    
  • 查看相关依赖包是否安装

    $ rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel|openssl| "
    

    注意:安装包有差异问题不大, 只要所需的安装包存在即可, 即使未安装在后续安装openssh时, 也会提示!

2、安装 OpenSSL 服务

2.1 安装相关说明

  • 安装 OpenSSH 服务需要升级 OpenSSL 服务,否则安装过程会报错,报错信息如下:

    ...
    checking for OpenSSL_version... no
    checking for OpenSSL_version_num... no
    checking OpenSSL library version... configure: error: OpenSSL >= 1.1.1 required (have "100020bf (OpenSSL 1.0.2k-fips  26 Jan 2017)")
    
  • 注意:openssh 服务安装需要基于 openssl 服务才能安装,上述报错是由于 openssl 服务版本过低导致无法安装 openssh 服务,安装 openssh9.5p 版本会出现 openssl 版本过低提示,openssh9.3p 版本不会出现该情况!

2.2 安装前准备工作

  • 上传 openssl-1.1.1w.tar.gz 安装包至 /opt/openssl 目录下

    $ mkdir -p /opt/openssl
    $ ll -h /opt/openssl
    -rw-r--r-- 1 root root 9.5M 1213 20:42 openssl-1.1.1w.tar.gz
    
  • 备份原有的 ssl 服务相关目录

    $ whereis openssl
    openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
    
    # 备份/usr/bin/openssl目录
    $ mv /usr/bin/openssl /usr/bin/openssl.bak
    
    # 备份/usr/lib64/openssl目录
    $ mv /usr/lib64/openssl /usr/lib64/openssl.bak
    
    # 备份/usr/include/openssl目录
    $ mv /usr/include/openssl /usr/include/openssl.bak
    
  • 安装所需依赖,查看卸载原有的 openssl 服务 (如非必要,不建议卸载依赖包)

    $ yum -y install gcc make perl zlib zlib-devel pam pam-devel
    
    $ rpm -qa | grep openssl			# 查看系统原有openssh包
    openssl-devel-1.0.2k-26.el7_9.x86_64
    openssl-1.0.2k-19.el7.x86_64
    xmlsec1-openssl-1.2.20-7.el7_4.x86_64
    openssl-libs-1.0.2k-19.el7.x86_64
    $ rpm -e --nodeps <依赖包>			# 卸载查询到的相关依赖包
    $ rpm -qa | grep openssl | xargs  rpm -e --nodeps 
    

2.3 解压安装openssl

  • 解压openssl-1.1.1w.tar.gz 安装包

    $ cd /opt/openssl
    $ tar -zxf openssl-1.1.1w.tar.gz	# 解压安装包
    $ cd openssl-1.1.1w/
    $ mkdir -p /usr/local/openssl		# 创建安装目录
    
  • 初始化,编译安装 openssl-1.1.1w 服务

    $ ./config --prefix=/usr/local/openssl --shared
    $ make && make install 
    

    image.png

2.4 安装成功后配置

  • 进行相关使用配置

    # 建立软连接, 替换原有的openssl
    $ ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    $ ln -s /usr/local/openssl/include/openssl /usr/include/openssl 
    
    # 检查软连接建立情况
    $ ls -al /usr/bin/openssl
    lrwxrwxrwx 1 root root 30 1223 23:01 /usr/bin/openssl -> /usr/local/openssl/bin/openssl
    $ ls -al /usr/include/openssl
    lrwxrwxrwx 1 root root 34 1223 23:01 /usr/include/openssl -> /usr/local/openssl/include/openssl
    
    $ ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
    $ ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    
    # 添加动态链接库
    $ echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    $ ldconfig			# 刷新库
    

    (1)ldconfig是一个动态链接库管理命令。
    (2)主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如前介绍: lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件。
    (3)缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表。
    (4)ldconfig通常在系统启动时运行, 当用户安装了新的动态链接库时,就需要手动运行这个命令。

  • 查看 openssl 版本,看是否安装成功

    $ openssl version
    OpenSSL 1.1.1w  11 Sep 2023
    
    $ openssl version -a
    OpenSSL 1.1.1w  11 Sep 2023
    built on: Thu Dec 14 06:43:25 2023 UTC
    platform: linux-x86_64
    options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
    compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
    OPENSSLDIR: "/usr/local/openssl/ssl"
    ENGINESDIR: "/usr/local/openssl/lib/engines-1.1"
    Seeding source: os-specific
    

3、安装 OpenSSH 服务

3.1 安装前准备工作

  • 上传 openssh-9.5p1.tar.gz 安装包至 /opt/openssh目录下

    $ mkdir -p /opt/openssh
    $ ll -h /opt/openssh
    -rw-r--r-- 1 root root 1.8M 41 15:10 openssh-9.5p1.tar.gz
    
  • 备份原有的 ssh 服务相关目录

    # 查看ssh服务所在的目录
    $ whereis ssh
    ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1
    
    # 备份/etc/ssh/目录
    $ mv /etc/ssh/ /etc/ssh.bak
    
    # 备份/usr/bin/ssh目录
    $ mv /usr/bin/ssh /usr/bin/ssh.bak
    
    # 备份/usr/sbin/shhd文件
    $ mv /usr/sbin/sshd /usr/sbin/sshd.bak
    
    # 备份/etc/init.d/shhd文件
    $ mv /etc/init.d/sshd /etc/init.d/sshd.bak
    # 注意/etc/init.d/sshd不存在,则无需备份
    
    # /etc/pam.d/sshd.pam文件
    $ mv /etc/pam.d/sshd.pam /etc/pam.d/sshd.pam.bak
    # 注意sshd.pam不存在,则无需备份,openssh9.0之前的版本可能有该文件
    
  • 卸载原有的 openssh 服务

    $ rpm -qa | grep openssh			# 查看系统原有openssh包
    openssh-server-7.4p1-21.el7.x86_64
    openssh-clients-7.4p1-21.el7.x86_64
    openssh-7.4p1-21.el7.x86_64
    $ rpm -e --nodeps <依赖包>			# 卸载查询到的相关依赖包
    $ rpm -qa | grep openssh | xargs rpm -e --nodeps  # 重新查看是否卸载完全
    

    注意:若原 openssh 服务是基于源码安装的,则无需卸载;若基于 rpm 包安装,则可以执行卸载命令。

  • 在 /etc/pam.d 目录下新建 sshd 文件

    # 注意: 如果文件已存在则无需修改
    $ vim /etc/pam.d/sshd
    #%PAM-1.0
    auth       required     pam_sepermit.so
    auth       substack     password-auth
    auth       include      postlogin
    # Used with polkit to reauthorize users in remote sessions
    -auth      optional     pam_reauthorize.so prepare
    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    include      password-auth
    session    include      postlogin
    # Used with polkit to reauthorize users in remote sessions
    -session   optional     pam_reauthorize.so prepare
    

    注意:请确认该文件是否成功创建并有内容且未出错,否则可能导致后续无法通过 ssh 远程登录

3.2 解压安装openssh

  • 解压openssh-9.5p1.tar.gz

    $ cd /opt/openssh
    $ tar -zxf openssh-9.5p1.tar.gz
    $ cd openssh-9.5p1/
    
  • 初始化,编译安装 openssh-9.5p1 服务

    # 使用默认安装目录的openssl
    $ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-privsep-path=/var/lib/sshd --without-hardening
    
    # 使用指定安装目录的openssl
    $ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd --without-hardening
    
    # 使用指定安装目录的openssl和zlib
    $ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --with-privsep-path=/var/lib/sshd --without-hardening
    
    # 编译安装
    $ make && make install 
    
  • 初始化成功的信息如下:

    image.png

  • 安装成功的信息如下:

    image.png

3.2 安装成功后配置

  • 修改文件权限为600,否则会报权限错误

    # 修改ssh的相关秘钥文件的权限
    $ chmod 600 /etc/ssh/ssh_host_rsa_key
    $ chmod 600 /etc/ssh/ssh_host_ecdsa_key
    $ chmod 600 /etc/ssh/ssh_host_ed25519_key
    
    # 二选一执行即可
    $ chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
    
  • 修改允许远程登录

    # 修改配置文件,允许root直接登录
    $ echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
    $ echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    $ echo "UsePAM yes" >> /etc/ssh/sshd_config
    
  • 设置sshd开机自启

    # ssh服务必须开机自启动,因此要进行一些设置
    $ cp -p /opt/openssh/openssh-9.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
    $ chmod +x /etc/init.d/sshd
    $ chkconfig --add sshd
    $ chkconfig sshd on
    $ systemctl restart sshd
    $ systemctl status sshd
    

    image.png

  • 验证查看当前的 openssh 版本

    $ ssh -V
    OpenSSH_9.5p1, OpenSSL 1.1.1w  11 Sep 2023
    

4、验证 OpenSSH 服务

4.1 验证服务是否升级成功

  • 关机,重新启动虚拟机

  • 通过 SSH 远程连接虚拟机/服务器

  • 验证查看当前的 openssh 版本

    $ ssh -V
    OpenSSH_9.5p1, OpenSSL 1.1.1w  11 Sep 2023
    
  • 查看sshd状态,sshd正常启动后可以重新打开一个窗口登录验证

    $ systemctl status sshd
    

    image.png

4.2 编写服务升级脚本

  • 升级 OpenSSL 服务脚本

    #!/bin/bash
    
    # 备份原有的openssl文件
    echo -e "\n \033[33m 开始备份OpenSSL服务文件... \033[0m \n"
    
    mv /usr/bin/openssl /usr/bin/openssl.bak
    mv /usr/lib64/openssl /usr/lib64/openssl.bak
    mv /usr/include/openssl /usr/include/openssl.bak
    
    # 解压OpenSSL安装包
    echo -e "\n \033[33m 开始解压OpenSSL安装包... \033[0m \n"
    
    cd /opt/openssl
    tar -zxvf openssl-1.1.1w.tar.gz
    cd openssl-1.1.1w/
    mkdir -p /usr/local/openssl
    
    # 编译安装OpenSSL
    echo -e "\n \033[33m 开始初始化、编译、安装OpenSSL服务... \033[0m \n"
    
    ./config --prefix=/usr/local/openssl --shared
    make && make install 
    
    if [ $? -ne 0 ]; then
        echo -e "\n \033[30m OpenSSL服务安装失败!!! \033[0m \n"
        exit 1
    else 
    	echo -e "\n \033[33m OpenSSL服务安装成功... \033[0m \n"
    fi
    
    # 进行相关使用配置
    echo -e "\n \033[33m 开始为OpenSSL服务进行相关配置... \033[0m \n"
    
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl 
    ls -al /usr/bin/openssl
    ls -al /usr/include/openssl
    
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    ldconfig
    
    # 查看服务是否安装成功
    echo -e "\n \033[33m 开始检测OpenSSL服务是否安装成功... \033[0m \n"
    openssl version	
    openssl version -a
    
  • 升级 OpenSSH 服务脚本

    #!/bin/bash
    
    # 备份原有的openssl文件
    echo -e "\n \033[33m 开始备份OpenSSH服务文件... \033[0m \n"
    
    mv /etc/ssh/ /etc/ssh.bak
    mv /usr/bin/ssh /usr/bin/ssh.bak
    mv /usr/sbin/sshd /usr/sbin/sshd.bak
    mv /etc/init.d/sshd /etc/init.d/sshd.bak
    ls -h /etc/pam.d/sshd.pam
    
    # 解压OpenSSH安装包
    echo -e "\n \033[33m 开始解压OpenSSH安装包... \033[0m \n"
    
    cd /opt/openssh
    tar -zxf openssh-9.5p1.tar.gz
    cd openssh-9.5p1/
    
    # 编译安装OpenSSH
    echo -e "\n \033[33m 开始初始化、编译、安装OpenSSH服务... \033[0m \n"
    
    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd --without-hardening
    make && make install 
    
    if [ $? -ne 0 ]; then
        echo -e "\n \033[30m OpenSSH服务安装失败!!! \033[0m \n"
        exit 1
    else 
    	echo -e "\n \033[33m OpenSSH服务安装成功... \033[0m \n"
    fi
    
    # 进行相关使用配置
    echo -e "\n \033[33m 开始为OpenSSH服务进行相关配置... \033[0m \n"
    
    ls -h /etc/pam.d/sshd
    if [ $? -ne 0 ]; then
        echo -e "\n \033[30m SSH的身份验证等相关的配置文件不存在 \033[0m \n"
        exit 1
    else 
    	echo -e "\n \033[33m SSH的身份验证等相关的配置文件存在 \033[0m \n"
    fi
    
    chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
    echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    echo "UsePAM yes" >> /etc/ssh/sshd_config
    
    cp -pf /opt/openssh/openssh-9.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
    chmod +x /etc/init.d/sshd
    chkconfig --add sshd
    chkconfig sshd on
    systemctl restart sshd
    
    # 查看服务是否安装成功
    echo -e "\n \033[33m 开始检测OpenSSH服务是否安装成功... \033[0m \n"
    
    ssh -V
    systemctl status sshd
    

    注意:升级前请将服务的安装包上传到指定命令目录下,先升级 OpenSSL 服务再升级 OpenSSH 服务。

5、异常处理

5.1 处理openssh的ssl版本与openssl版本不一致问题

  • 解决办法:

    • 方案一: 重新源码安装 openssh 并指定 openssl 的安装为重新安装的位置
    • 方案二: 重新编译生成rpm,安装openssl下编译的openssh rpm包
  • 环境说明:

    OpenSSH版本OpenSSL版本
    升级前OpenSSH_7.4p1OpenSSL 1.0.2k
    升级后OpenSSH_9.5p1OpenSSL 1.1.1k
    $ openssl version
    OpenSSL 1.1.1k  25 Mar 2021
    $ ssh -V
    OpenSSH_9.5p1, OpenSSL 1.0.2k-fips  26 Jan 2017
    

    具体说明:
    (1)源码安装 openssl 1.1.1k,安装成功后查看 openssl 版本
    (2)查看 openssh 的 ssl 版本与 openssl 版本显示不一致

  • 重新安装 openssh 服务

    # 备份原有的openssl文件
    $ mv /etc/ssh/ /etc/ssh.bak
    $ cp -r /usr/bin /usr/bin.bak
    $ mv /usr/sbin/sshd /usr/sbin/sshd.bak
    $ mv /etc/init.d/sshd /etc/init.d/sshd.bak
    
    # 解压OpenSSH安装包
    $ cd /opt/openssh
    $ tar -zxvf openssh-9.5p1.tar.gz
    $ cd openssh-9.5p1/
    
    # 编译安装OpenSSH
    $ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd --without-hardening
    $ make && make install 
    
    # 进行相关使用配置
    $ chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
    $ echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
    $ echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    $ echo "UsePAM yes" >> /etc/ssh/sshd_config
    
    $ cp -pf /opt/openssh/openssh-9.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
    $ chmod +x /etc/init.d/sshd
    $ chkconfig --add sshd
    $ chkconfig sshd on
    $ systemctl restart sshd
    $ systemctl status sshd
    
  • 查看是否安装成功

    # 查看服务是否安装成功
    $ openssl version
    OpenSSL 1.1.1k  25 Mar 2021
    $ ssh -V
    OpenSSH_9.5p1, OpenSSL 1.1.1k  25 Mar 2021
    

5.2 处理openssl安装版本与Library版本不一致的问题

  • 解决办法:

    • 检查软连接建立情况,修改 openssl 的 lib 库的链接
    • 提升 lib 库在动态链接库 /etc/ld.so.conf 中的位置
  • 方案一:

    # 查看ssl版本和链接的ssl库
    $ openssl version
    OpenSSL 1.1.1k 25 Mar 2021 (Library: OpenSSL 1.1.1w 11 Sep 2023) 
    
    # 查看openssl调用的lib库情况
    $ ldd /usr/local/openssl/bin/openssl
    linux-vdso.so.1 =>  (0x00007ffd013ca000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f4b62a90000)
    libcrypto.so.1.1 => /usr/local/openssl/lib/libssl.so.1.1 (0x00007f4b625a8000)		# 问题发现
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f4b623a3000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4b62187000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f4b61dc4000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f4b61bad000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4b62d38000)
    
    # 查看软链接情况
    $ ls -l /usr/local/openssl/lib/libssl.so.1.1
    -rwxr-xr-x 1 root root 690110 Dec 22 20:05 /usr/local/openssl/lib/libssl.so.1.1
    
    # 重新建立软链接 (也有可能是/usr/local/openssl/lib64)
    $ ln -sf /usr/local/openssl/lib/libssl.so.1.1      /usr/lib64/libssl.so.1.1
    $ ln -sf /usr/local/openssl/lib/libcrypto.so.1.1   /usr/lib64/libcrypto.so.1.1
    
    # 查看ssl版本和链接的ssl库
    $ openssl version
    OpenSSL 1.1.1w  11 Sep 2023
    
  • 方案二:

    # 查看ssl版本和链接的ssl库
    $ openssl version
    OpenSSL 1.1.1k 25 Mar 2021 (Library: OpenSSL 1.1.1w 11 Sep 2023) 
    
    # 将安装目录的lib库提高位置
    $ vim /etc/ld.so.conf
    ld.so.conf.d/*.conf
    /opt/openssl/openssl/lib
    /usr/local/lib64
    
    # 查看ssl版本和链接的ssl库
    $ openssl version
    OpenSSL 1.1.1w  11 Sep 2023
    

5.3 处理openssh升级后无法登录的问题

  • 环境说明:

    OpenSSH版本OpenSSL版本
    升级前OpenSSH_7.4p1OpenSSL 1.0.2k
    升级后OpenSSH_9.5p1OpenSSL 1.1.1k
  • 原因分析: 从 openssh7.x 版本升级至 openssh9.x版本可能导致 /etc/pam.d/sshd文件被覆盖或删除,升级完 openssh 服务后,记得查看该文件是否存在,否则会导致无法通过 ssh 进行远程登录,或者显示密码错误等问题。

  • 解決办法: 重新创建 sshd 文件即可

    $ vim /etc/pam.d/sshd
    #%PAM-1.0
    auth       required     pam_sepermit.so
    auth       substack     password-auth
    auth       include      postlogin
    # Used with polkit to reauthorize users in remote sessions
    -auth      optional     pam_reauthorize.so prepare
    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    include      password-auth
    session    include      postlogin
    # Used with polkit to reauthorize users in remote sessions
    -session   optional     pam_reauthorize.so prepare
    
    $ systemctcl restart sshd
    

5.4 升级 openssl 后导致 yum 命令无法正常使用

  • 升级 openssl 至 1.1.1w 版本后使用 yum 命令出现如下情况:

    image.png
    这是因为 yum 使用的是旧版本的 OpenSSL 库,而新版本的 OpenSSL 已经安装。

  • 解决办法1: 可能是由于删除了 openssl-libs 包导致的,重新安装 openssl-libs 包

    $ rpm -qa | grep openssl			# 查看系统原有openssh包
    openssl-devel-1.0.2k-26.el7_9.x86_64
    openssl-1.0.2k-19.el7.x86_64
    xmlsec1-openssl-1.2.20-7.el7_4.x86_64
    openssl-libs-1.0.2k-19.el7.x86_64
    $ rpm -e --nodeps <依赖包>			# 卸载查询到的相关依赖包
    

    卸载相关依赖包时,不要卸载openssl-libs-1.0.2k-19.el7.x86_64,卸载该依赖包会导致/usr/lib64/libssl.so.10被删除,从而导致 yum 命令无法使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑哪有坏心思!

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值