美文网首页Linuxcentos
Centos7 升级 openSSH 到8.8p1的详细步骤记录

Centos7 升级 openSSH 到8.8p1的详细步骤记录

作者: 前浪浪奔浪流 | 来源:发表于2022-04-14 10:46 被阅读0次

    本文讲的步骤是在Centos7.9系统、原openssh是系统安装时自带的7.4版本基础上进行升级(其他版本类似),建议测试环境要先做测试,之后再在生产环境升级。

    一、升级说明

    1、升级OpenSSH后,原有公钥失效,信任关系需要重新配置;

    2、升级过程需要停止sshd服务,会导致ssh和sftp无法使用;如果你使用的是xshell的ssh2


    image.png

    shell5截图

    image.png

    shell7截图
    则不会受影响。

    3、升级需要关闭防火墙服务;

    4、升级需要关闭selinux服务;

    5、升级前需要开启telnet,防止升级失败,系统无法登录,对应的防火墙需要开启23端口,安装需要telnet相关包(推荐通过系统ISO安装)

    6、升级过程中需要刷新lib库:ldconfig -v;

    7、升级顺序:顺序是zlib库-> openssl -> openssh;

    8、升级需要gcc、make、perl、zlib、zlib-devel、pam、pam-devel依赖包;

    二、安装包准备

    需要准备的安装包(点击可本地下载):

    openssh-8.8p1.tar.gz,zlib-1.2.11.tar.gz,openssl-1.0.2o.tar.gz
    下载地址:
    https://pan.baidu.com/s/19Jfg8fdnat8oP6G8nmKiHQ提取码:6x5r

    三、安装并启用Telnet

    1、安装telnet服务端
    yum -y install xinetd telnet-server
    
    2、默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容。或者可以添加一个可以登录的用户,登录并su到root用户(建议采用此方法,保证系统安全)。此步骤可跳过!

    允许root用户通过telnet登陆:
    编辑/etc/pam.d/login,注释掉下面这行

    vi /etc/pam.d/login
    
    #auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
    
    image.png
    3、添加超级用户登陆设备至/etc/securetty文件
    cp /etc/securetty /etc/securetty.bak
    echo "pts/0" >> /etc/securetty
    echo "pts/1" >> /etc/securetty
    echo "pts/2" >> /etc/securetty
    
    image.png
    4、开启root用户远程登陆。此步骤可跳过!

    编辑/etc/pam.d/remote,注释下列这行:

    vi /etc/pam.d/remote
    #auth required pam_securetty.so
    
    image.png
    5、重启telnet和xinetd服务【telnet服务依赖于xinetd服务】
    systemctl restart telnet.socket
    systemctl restart xinetd
    

    PS:如果开启了防火墙,需要将23端口(系统默认23为telnet端口)添加到防火墙允许的端口的列表中。

    四、安装升级

    (1)、升级前环境准备

    1、将上文下载的三个文件上传至服务器,目录可自行设定,方便即可。

    zlib-1.2.11.tar.gz
    openssl-1.0.2o.tar.gz
    openssh-8.8p1.tar.gz

    2、关闭系统防火墙
    systemctl stop firewalld.service
    
    3、关闭SElinux

    检查是否关闭:
    getenforce
    如果未关闭,关闭之
    setenforce 0
    上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。

    vi /etc/selinux/config
    修改:
      SELINUX=disabled
    保存退出。
    
    image.png
    4、安装相关依赖包
    yum -y install gcc make perl zlib zlib-devel pam pam-devel
    
    image.png

    安装完毕后执行下面命令,确保所有依赖包正常安装

    rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"
    
    image.png

    (2)、升级openSSH(注意从这步开始,通过Telnet登录到服务器,务必)

            如果使用的是xshell 并且使用的是ssh2的话可以继续使用xshell连接。
    
    1、停止ssh服务
    systemctl stop sshd
    

    备份ssh配置文件

    cp -r /etc/ssh /etc/ssh.old 
    
    2、查看系统原有openssh包
    rpm -qa | grep openssh
    根据上面查询出的结果,卸载系统里原有Openssh(一般有三个包,全部卸载)
    rpm -e --nodeps  xxxxxxxxxx
    rpm -e --nodeps openssh-server-7.4p1-21.el7.x86_64
    rpm -e --nodeps openssh-7.4p1-21.el7.x86_64
    rpm -e --nodeps openssh-clients-7.4p1-21.el7.x86_64
    卸载完成后执行rpm -qa | grep openssh,确保没有回显
    rpm -qa | grep openssh
    
    image.png
    3、编译安装zlib

    解压刚才上传到服务器的zlib-1.2.11.tar.gz,并进行编译安装

    tar -xzvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure --prefix=/usr/local/zlib
    make
    make install
    

    如果报错类似下图所示,请安装gcc


    image.png

    验证zlib安装是否成功,要包含include、lib、share三个目录。

    ll /usr/local/zlib
    
    image.png
    新建并编辑配置文件:
    vi /etc/ld.so.conf.d/zlib.conf 
    加入如下内容后保存退出
    /usr/local/zlib/lib 
    刷新库文件,加载刚才编译安装的zlib生成的库文件
    ldconfig -v
    
    4、编译安装openssl

    解压安装openssl包,并进行编译安装

    tar -xzvf openssl-1.0.2o.tar.gz
    cd openssl-1.0.2o
    ./config shared zlib
    make      (时间比较长,切勿打断)
    make test    (时间比较长,切勿打断)
    make install     (时间比较长,切勿打断)
    重命名现有文件目录
    mv /usr/bin/openssl /usr/bin/openssl.bak
    创建ssl相关软连接
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    编辑配置文件
    vi /etc/ld.so.conf.d/ssl.conf
    加入如下内容后保存退出
    /usr/local/ssl/lib
    刷新库文件,加载刚才编译安装的ssl生成的库文件
    ldconfig -v
    查看openssl版本
    openssl version -a
    
    image.png
    5、升级openssh,编译安装
    tar -zxvf openssh-8.8p1.tar.gz
    cd openssh-8.8p1
    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd --with-ssl-dir=/usr/local/ssl
    make
    修改文件权限
    chmod 600 /etc/ssh/ssh_host_rsa_key
    chmod 600 /etc/ssh/ssh_host_ecdsa_key
    chmod 600 /etc/ssh/ssh_host_ed25519_key
    make install
    修改配置文件,允许root直接登录
    echo "PasswordAuthentication yes"   >> /etc/ssh/sshd_config
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    ssh服务必须开机自启动,因此要进行一些设置
    cp -p contrib/redhat/sshd.init /etc/init.d/sshd
    chmod +x /etc/init.d/sshd
    chkconfig --add sshd
    chkconfig sshd on
    重启sshd服务
    systemctl restart sshd
    查看sshd服务状态
    systemctl status sshd -l
    验证ssh版本
    ssh -V
    
    image.png

    ssh登录测试,可以成功登录。


    image.png

    openssh版本升级完成!
    如果之前是rpm包安装的。并且按照以上步骤操作,可以直接以下命令进行回滚.

    yum -y install openssh-clients
    yum -y install openssh-server
    yum -y install openssh
    

    原文连接:https://blog.csdn.net/czy0505/article/details/122376023

    相关文章

      网友评论

        本文标题:Centos7 升级 openSSH 到8.8p1的详细步骤记录

        本文链接:https://www.haomeiwen.com/subject/uwctertx.html