美文网首页
centos7升级ssh离线升级到OpenSSH_8.3p1

centos7升级ssh离线升级到OpenSSH_8.3p1

作者: Firetheworld | 来源:发表于2020-08-25 17:02 被阅读0次

    环境:Centos7.8
    SSH版本:OpenSSH_7.4p1

    如果ssh版本过低,先进行yum update将ssh升级到OpenSSH_7.4p1

    为了意外中断,造成无法远程服务器,在生产环境中,确保先安装好了telnetserver以及xinetd,在端口openssh后,还能进行远程(略)。

    目前环境仅直接进行openssh的升级。

    步骤:
    一、下载好openssh以及openssl的包
    二、安装依赖以及编辑环境
    三、备份openssl并升级openssl
    四、升级openssh
    五、配置修改。


    一 下载openssh以及openssl包

    最新版本openssh链接:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
    openssl下载链接:
    https://ftp.openssl.org/source/openssl-1.1.1g.tar.gz

    二 安装依赖以及编译环境

     yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel # 安装依赖以及gcc编译环境
    
    yum install  -y pam* zlib*  # 安装pam以及zlib
    

    三 备份openssl并升级openssl

    关闭selinux:

    setenforce 0 \
        && sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config \
        && getenforce
    

    查看openssl版本:

    # openssl version
    OpenSSL 1.0.2k-fips  26 Jan 2017
    

    备份原openssl文件路径,:

    # mv /usr/bin/openssl /usr/bin/openssl_bak
    # mv /usr/include/openssl /usr/include/openssl_bak
    

    解压openssl-1.1.1g.tar.gz,并进入openssl路径。进行openssl的编译安装:

    #tar -xf openssl-1.1.1g.tar.gz && cd openssl-1.1.1g
    #./config shared && make && make install  # 
    # echo $?  #  确认上一条命令成功执行,0为成功。
    0
    

    升级完成openssl后,升级后在的openssl的路径安装在/usr/local下。
    对升级后的openssl重做软链接,,并加载新配置:

    # ln -s /usr/local/bin/openssl  /usr/bin/openssl 
    # ln -s /usr/local/include/openssl /usr/include/openssl  
    # echo "/usr/local/lib64" >> /etc/ld.so.conf && /sbin/ldconfig 
    
    # openssl version # 确认openss版本
    OpenSSL 1.1.1g  21 Apr 2020
    

    四 升级openssh

    下载openssh-8.3p1.tar.gz到指定路径中,并解压,进入到openssh的路径中:

    # tar -xf openssh-8.3p1.tar.gz 
    # cd openssh-8.3p1
    

    迁移原shs的配置文件和目录,在进行安装

    # mv /etc/ssh{,_bak}
    # ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/include  --with-ssl-dir=/usr/local/lib64  --with-zlib   --with-md5-passwords   --with-pam  && make && make install 
    #  echo $?  # 验证上一条命令是否成功执行
    0
    

    五 配置修改。

    # 修改配置项让root能远程登录
    # sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
    sed -i "s/#UseDNS no/UseDNS no/g" /etc/ssh/sshd_config
    
    #  在openssh中复制文件到目标位置中,并设置sshd开机自启动。
    cp -a contrib/redhat/sshd.init /etc/init.d/sshd && cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam && chmod +x /etc/init.d/sshd && chkconfig --add sshd && systemctl enable sshd  
    
    # 移走原来的sshd文件,否则影响我们重启sshd服务
    mv  /usr/lib/systemd/system/sshd.service  /tmp/ && chkconfig sshd on 
    

    验证openssh:

    # systemctl restart sshd # 重启sshd
    # ssh -V #  查看openssh版本
    OpenSSH_8.3p1, OpenSSL 1.1.1g  21 Apr 2020
    # netstat -lntp|grep 22 # 查看端口以及服务状态
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9491/sshd: /usr/sbi
    

    下面附离线安装的脚本:

    #!/bin/sh
    #关闭Selinux/firewalld/iptables
    setenforce 0 \
        && sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config \
        && getenforce
    cd gcc+ && pwd  
    chmod +x install.sh && source install.sh && cd ..
    cd pam-zlib && chmod +x install.sh && source install.sh && cd .. 
    cd perl5 && chmod +x install.sh && source install.sh && cd ..
    mv /usr/bin/openssl /usr/bin/openssl_bak && mv /usr/include/openssl /usr/include/openssl_bak
    cd openssl-1.1.1g && ./config shared && make && make install && echo $?
    ln -s /usr/local/bin/openssl  /usr/bin/openssl && ln -s /usr/local/include/openssl /usr/include/openssl && echo "/usr/local/lib64" >> /etc/ld.so.conf && /sbin/ldconfig &&  cd ..
    cd openssh-8.3p1 && rm -rf /etc/ssh/* && ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/include \
     --with-ssl-dir=/usr/local/lib64  --with-zlib   --with-md5-passwords   --with-pam  && make && make install && echo $?
    sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
    sed -i "s/#UseDNS no/UseDNS no/g" /etc/ssh/sshd_config
    cp -a contrib/redhat/sshd.init /etc/init.d/sshd && cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam && chmod +x /etc/init.d/sshd && chkconfig --add sshd && systemctl enable sshd  && mv  /usr/lib/systemd/system/sshd.service  /tmp/ && chkconfig sshd on 
    

    相关文章

      网友评论

          本文标题:centos7升级ssh离线升级到OpenSSH_8.3p1

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