天天看点

CentOS7.6升级到openssh8.0pCentOS7.6升级openssh到8.0版本

CentOS7.6升级openssh到8.0版本

CentOS7.6/7.5默认的openssh版本为7.4p1,最近对服务器进行扫描,发现在openssh7.8以下版本存在漏洞 OpenSSH 安全漏洞(CVE-2018-15473) OpenSSH 安全漏洞(CVE-2017-15906) OpenSSH 安全漏洞(CVE-2018-15919),针对以上漏洞,对openssh进行升级到8.0

安装包准备

  1. openssl-1.0.2r.tar.gz和openssh-8.0p1.tar.gz

    链接:https://pan.baidu.com/s/1qyU6HOFs_GzBnm2ICvveMA

    提取码:k95g

  2. 传输对应的文件到服务器
    • 打开对应的传输程序SCP或者Filezilla 这里使用SCP举例
      CentOS7.6升级到openssh8.0pCentOS7.6升级openssh到8.0版本
    • 输入对应的服务器ip和用户名密码

升级步骤(putty或者CRT等其他软件打开服务器)

  1. 创建传输文件夹
mkdir /root/package
           

创建后,利用SCP软件传入文件(这里使用root账号登录就行)

  1. 安装依赖
    yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel
               
  2. 安装pam,zlib和net-tools等(pam和zlib对安装有无影响不确定,请自行测试)
    yum install  -y pam* zlib* net-tools
               
  3. 安装openssl

    ①解压并查看原始版本

    cd  /root/package
     tar -zxvf openssl-1.0.2r.tar.gz
     openssl version      #查看老版本
               
    CentOS7.6升级到openssh8.0pCentOS7.6升级openssh到8.0版本
    ②备份下面2个文件或目录(如果存在的话就执行)
    ll /usr/bin/openssl
     mv /usr/bin/openssl /usr/bin/openssl_bak
     ll /usr/include/openssl
     mv /usr/include/openssl /usr/include/openssl_bak
               
    ③编译安装
    cd openssl-1.0.2r
      ./config shared && make && make install
      #查看编译安装有无报错 如果为0则正常
      echo $?    
               
    ④创建软连接
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
     ln -s /usr/local/ssl/include/openssl /usr/include/openssl
     ll /usr/bin/openssl
     ll /usr/include/openssl -ld
               
    ⑤执行下面2个命令加载新配置
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
     /sbin/ldconfig
               
    ⑥查看版本是否更新成功
    openssl version
     ##OpenSSL 1.0.2r  26 Feb 2019
               
  4. 安装openssh

    ①解压目录并赋予对应权限

    cd /root/package/
     tar -zvxf openssh-8.0p1.tar.gz
     cd openssh-8.0p1
     chown -R root.root /root/package/openssh-8.0p1
               
    ②删除原先ssh的配置文件和目录
    rm -rf /etc/ssh/*
               
    ③配置、编译、安装
    ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include  --      with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam  && make && make install
               
    注意:这是一行语句,我执行时候会报错
    CentOS7.6升级到openssh8.0pCentOS7.6升级openssh到8.0版本
    解决:
    chmod 600 /etc/ssh/ssh_host_*
     install -v -m755 contrib/ssh-copy-id /usr/bin
     install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
     install -v -m755 -d /usr/share/doc/openssh-8.0p1
     install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.0p1
     #最后查看编译安装有无报错 如果为0则正常
     echo $?
               
    ④更改配置文件
    echo 'UsePAM yes' >> /etc/ssh/sshd_config
    echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
    ------第二步一般在正式环境不做更改,第二步是允许root远程直接登录--------
               
    ⑤从原先的解压的包中拷贝一些文件到目标位置
    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
               
    ⑥把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务
    mv  /usr/lib/systemd/system/sshd.service  /root/package/
               
    ⑦开机自动启动
    chkconfig sshd on
     systemctl enable sshd.socket
               
    ⑧重启服务
    /etc/init.d/sshd restart
     netstat -lntp
     或者
     systemctl restart sshd
     附加启动停止命令
     systemctl stop sshd
     systemctl start sshd
               
    ⑧查看版本
    ssh -V
     #OpenSSH_8.0p1, OpenSSL 1.0.2r  26 Feb 2019
               

最后不关闭putty或者scrt,创建新连接测试是否成功

成功连接!!到此openssh升级成功

继续阅读