zoukankan      html  css  js  c++  java
  • 天道神诀--openSSH升级(linux6)



    颜色解释:
    配置颜色
    命令颜色
     
     
    升级前环境介绍:
    [root@linux6 ~]# more /etc/redhat-release 
    Red Hat Enterprise Linux Server release 6.5 (Santiago)
     
    [root@linux6 ~]# ssh -V
    OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
     
    [root@linux6 ~]# rpm -q zlib
    zlib-1.2.3-29.el6.x86_64
     
    升级目标:openSSH7.6p1
     
     
    操作过程:
    下载相应的安装包
    openssh-7.9p1.tar.gz (https://mirror.vdms.io/pub/OpenBSD/OpenSSH/portable/)
    openssl-1.0.2q.tar.gz  (ftp://ftp.openssl.org/source/old/)
    zlib-1.2.11.tar.gz
     
     
    1、安装telnet服务并启用
    因升级OpenSSH过程中需要卸载现有OpenSSH,因此安装telnet
     
    #rpm -ivh telnet-server-0.17-47.el6_3.1.x86_64.rpm xinetd-2.3.14-39.el6_4.x86_64.rpm
    (关闭防火墙或开23端口)
    #vi /etc/xinetd.d/telnet   /将其中disable字段的yes改为no以启用telnet服务
    #mv /etc/securetty /etc/securetty.old
    #service xinetd start
    #chkconfig xinetd on
    telnet 测试是否安装成功
    ss -tnlp |grep 23(查看侦听端口)
     
     
    做好备份(快照)
     
    2、升级ZLIB
     
    有可能需要安装gcc
     
    # tar -zxvf zlib-1.2.11.tar.gz
    # cd zlib-1.2.11
    # ./configure --prefix=/usr
    # make 
    注意:此步骤必须在步骤 a 执行完毕后再执行,否则先卸载 zlib 后,/lib64/
    目录下的 zlib 相关库文件会被删除,步骤 a 编译 zlib 会失败。(补救措施:从
    其他相同系统的服务器上复制/lib64、/usr/lib 和/usr/lib64 目录下的
    libcrypto.so.10、libssl.so.10、libz.so.1、libz.so.1.2.3 四个文件到相应
    目录即可。可通过 whereis、locate 或 find 命令找到这些文件的位置)
    # rpm -e --nodeps zlib-xx-xx  (--allmatches /卸载任何匹配的包)
    在 zlib 编译目录执行如下命令
    # make install
    共享库注册
    zlib 安装完成后,会在/usr/lib 目录中生产 zlib 相关库文件,需要将这些
    共享库文件注册到系统中
    # echo '/usr/lib' >> /etc/ld.so.conf
    # ldconfig #更新共享库 cache
     
     
     
     
    [root@linux6 lib]# find /usr/ -name zlib.pc
    /usr/lib64/pkgconfig/zlib.pc
    /usr/lib/pkgconfig/zlib.pc
    [root@linux6 lib]# more /usr/lib/pkgconfig/zlib.pc
    prefix=/usr
    exec_prefix=${prefix}
    libdir=${exec_prefix}/lib
    sharedlibdir=${libdir}
    includedir=${prefix}/include
     
    Name: zlib
    Description: zlib compression library
    Version: 1.2.11
     
    Requires:
    Libs: -L${libdir} -L${sharedlibdir} -lz
    Cflags: -I${includedir}
     
     
    2、升级OpenSSL
    注:openssh7.6p1依赖的openssl的版本为>1.0.1e 并且 < 1.1.0。
    备份当前的openssl
    [root@linux6 lib]# find / -name openssl
    /usr/bin/openssl
    /usr/lib64/openssl
    /usr/openv/pdde/pdopensource/bin/.bin/openssl
    /usr/openv/pdde/pdopensource/bin/openssl
    /etc/pki/ca-trust/extracted/openssl
    [root@linux6 lib]# mv /usr/bin/openssl /usr/bin/openssl.old
    [root@linux6 lib]# mv /usr/lib64/openssl /usr/lib64/openssl.old
    [root@linux6 lib]# mv /usr/openv/pdde/pdopensource/bin/.bin/openssl /usr/openv/pdde/pdopensource/bin/.bin/openssl.old
    [root@linux6 lib]# mv /usr/openv/pdde/pdopensource/bin/openssl /usr/openv/pdde/pdopensource/bin/openssl.old
    [root@linux6 lib]# mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
    如下两个库文件必须先备份,因系统内部分工具(如 yum、wget 等)依赖此库,而新版 OpenSSL 不
    包含这两个库
    [root@linux6 lib]# cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
    [root@linux6 lib]# cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
     
    卸载当前OpenSSL (redhat5.8测试 不用卸载也可以继续源码安装--卸载后yum可能出现问题)
    [root@linux6 lib]# rpm -qa |grep openssl
    openssl-1.0.1e-15.el6.x86_64
     
    [root@linux6 lib]# rpm -e --nodeps openssl-1.0.1e-15.el6.x86_64
    [root@linux6 lib]# rpm -qa |grep openssl
    [root@linux6 lib]# 
     
     
    解压openssl-1.0.2q.tar.gz源码并编译安装
    [root@linux6 opt]# tar -zxvf openssl-1.0.2q.tar.gz
    [root@linux6 opt]# cd openssl-1.0.2q
    [root@linux6 openssl-1.0.2q]# ./config --prefix=/usr --openssldir=/etc/ssl --shared zlib
    注:必须加上--shared,否则编译时会找不到新
    安装的 openssl 的库而报错
     
    [root@linux6 openssl-1.0.2q]#make
    [root@linux6 openssl-1.0.2q]#make test
    [root@linux6 openssl-1.0.2q]#make install
    [root@linux6 openssl-1.0.2q]# openssl version -a
    OpenSSL 1.0.2q  20 Nov 2018
    built on: reproducible build, date unspecified
    platform: linux-x86_64
     
    恢复共享库
    由于 OpenSSL_1.0.2k 不提供 libcrypto.so.10 和 libssl.so.10 这两个库,
    而 yum、wget 等工具又依赖此库,因此需要将先前备份的这两个库进行恢复,其
    他的可视情况考虑是否恢复。
    # mv /usr/lib64/libcrypto.so.10.old /usr/lib64/libcrypto.so.10
    # mv /usr/lib64/libssl.so.10.old /usr/lib64/libssl.so.10
    每个版本需要备份的东西都不一样,做之前做好备份
     
     
     
    3、升级OpenSSH
     
    备份当前OpenSSH
    [root@linux6 etc]# mv /etc/ssh /etc/ssh.old
    卸载当前OpenSSH
    [root@linux6 ssh.old]# rpm -qa |grep openssh
    openssh-5.3p1-94.el6.x86_64
    openssh-clients-5.3p1-94.el6.x86_64
    openssh-server-5.3p1-94.el6.x86_64
    openssh-askpass-5.3p1-94.el6.x86_64
    [root@linux6 ssh.old]#  
    [root@linux6 ssh.old]# rpm -e --nodeps openssh-5.3p1-94.el6.x86_64
    [root@linux6 ssh.old]# rpm -e --nodeps openssh-clients-5.3p1-94.el6.x86_64
    [root@linux6 ssh.old]# rpm -e --nodeps openssh-server-5.3p1-94.el6.x86_64
    [root@linux6 ssh.old]# rpm -e --nodeps openssh-askpass-5.3p1-94.el6.x86_64
    [root@linux6 ssh.old]# rpm -qa |grep openssh
    [root@linux6 ssh.old]# 
     
     
    解压openssh-7.9p1.tar.gz源码并编译安装
     
    [root@linux6 opt]# tar -zxvf openssh-7.9p1.tar.gz
    [root@linux6 opt]# cd openssh-7.9p1
    [root@linux6 openssh-7.9p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr -with-privsep-path=/var/lib/sshd
    [root@linux6 openssh-7.9p1]#make
    [root@linux6 openssh-7.9p1]#make install
     
    环境安装后配置
    [root@linux6 openssh-7.9p1]# install -v -m755 contrib/ssh-copy-id /usr/bin
    `contrib/ssh-copy-id' -> `/usr/bin/ssh-copy-id'
    [root@linux6 openssh-7.9p1]# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
    `contrib/ssh-copy-id.1' -> `/usr/share/man/man1/ssh-copy-id.1'
    [root@linux6 openssh-7.9p1]# install -v -m755 -d /usr/share/doc/openssh-7.9p1
    install: creating directory `/usr/share/doc/openssh-7.9p1'
    [root@linux6 openssh-7.9p1]# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1/
    `INSTALL' -> `/usr/share/doc/openssh-7.9p1/INSTALL'
    `LICENCE' -> `/usr/share/doc/openssh-7.9p1/LICENCE'
    `OVERVIEW' -> `/usr/share/doc/openssh-7.9p1/OVERVIEW'
    `README' -> `/usr/share/doc/openssh-7.9p1/README'
    `README.dns' -> `/usr/share/doc/openssh-7.9p1/README.dns'
    `README.platform' -> `/usr/share/doc/openssh-7.9p1/README.platform'
    `README.privsep' -> `/usr/share/doc/openssh-7.9p1/README.privsep'
    `README.tun' -> `/usr/share/doc/openssh-7.9p1/README.tun'
    [root@linux6 openssh-7.9p1]# ssh -V
    OpenSSH_7.9p1, OpenSSL 1.0.2q  20 Nov 2018
     
     
    启动OpenSSH
    [root@linux6 openssh-7.9p1]#  echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
    [root@linux6 openssh-7.9p1]#  echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    [root@linux6 openssh-7.9p1]#  cp -p contrib/redhat/sshd.init /etc/init.d/sshd
    [root@linux6 openssh-7.9p1]#  chmod +x /etc/init.d/sshd
    [root@linux6 openssh-7.9p1]#  chkconfig --add sshd
    [root@linux6 openssh-7.9p1]#  chkconfig sshd on
    [root@linux6 openssh-7.9p1]#  chkconfig --list sshd
    sshd           0:off1:off2:on3:on4:on5:on6:off
    [root@linux6 openssh-7.9p1]#  service sshd restart
    Stopping sshd:                                             [  OK  ]
    Starting sshd:                                             [  OK  ]
    [root@linux6 openssh-7.9p1]# 
     
    测试
    ssh连接测试正常即可!
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    宋浩《概率论与数理统计》笔记---6.2.1、统计量定义
    宋浩《概率论与数理统计》笔记---6.1、总体与样本
    宋浩《概率论与数理统计》笔记---5.2、中心极限定理
    PHP使用curl替代file_get_contents
    PHP中的ini_set() 函数
    通俗理解中心极限定理
    宋浩《概率论与数理统计》笔记---5.1.2、切比雪夫大数定理
    Options / Lifecycle Hooks
    idea各种图标的含义
    Gradle 基础入门
  • 原文地址:https://www.cnblogs.com/zakker/p/12155026.html
Copyright © 2011-2022 走看看