zoukankan      html  css  js  c++  java
  • Centos6.5 升级Openssl + Openssh

    xu言:

      平时很懒,都不想写blog。今天(2018.05.15)开始尝试每天写一篇吧,看我自己能坚持多久!

    准备工作:

    为了防止在操作过程中导致ssh远程中断,首先安装一个telnet-server服务

    yum install -y telnet-server

    chkconfig telnet on   # 前提是启动了  chkconfig --list |grep "xinetd" 

    通过chkconfig --list 查看是否开启

    这里开启后telnet 状态是 on

    Note: 开启后记得在防火墙里面添加23端口,不然...呵呵,你懂的

     然后,在外面用你自己的远程工具使用telnet进行测试,测试成功后开始进行升级工作。

    所需相关软件包资源汇总:

    zlib

    http://www.zlib.net/

    pam

    http://mirror.centos.org/centos/6/os/x86_64/Packages/pam-devel-1.1.1-24.el6.x86_64.rpm

    openssl

    http://www.openssl.org/source/

    openssh

    http://www.openssh.com/

    源码安装步骤:

    zlib 安装

    tar xf zlib-1.2.11.tar.gz

    ./configure --prefix=/usr/local/zlib

     make && make install  # 如果是非root用户自己加sudo

    pam 安装

     rpm -ivh pam-devel-1.1.1-24.el6.x86_64.rpm --nodeps # 不检查依赖关系直接安装

     OpenSSL 安装(版本根据实际情况下载,这里演示用1.01g版本)

    tar zxf openssl-1.0.1g.tar.gz

    cd openssl-1.0.1g

    ./config --prefix=/usr/local/openssl --shared

    make  && make install

    mv /usr/bin/openssl /usr/bin/openssl.bak  

    mv /usr/include/openssl /usr/include/openssl.bak 

    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl  

    ln -s /usr/local/openssl/include/openssl /usr/include/openssl  

    echo "/usr/local/openssl/lib" >>/etc/ld.so.conf  

    验证结果:

    ldconfig -v  

    openssl version -a  

    OpenSSH 安装

    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --with-md5-passwords --with-pam

    make && make install

    # 复制配置文件
    cp ssh_config /etc/ssh/
    cp sshd_config /etc/ssh/
    cp moduli /etc/ssh/

    # 复制启动脚本到/etc/init.d
    # 根据安装路径情况,可能需要修改启动脚本中sshd的路径
    cp contrib/redhat/sshd.init /etc/init.d/sshd
    /usr/sbin/sshd -t -f /etc/ssh/sshd_config

    # 加入开机自启
    chkconfig --add sshd
    chkconfig sshd on
    chkconfig sshd --list

    # 开启SSH服务
    # 不推荐restart。使用restart会造成连不上,需要登录控制台启动。(如果restart了,不能ssh后。可以使用telnet方式处理)
    /etc/init.d/sshd start  # 启动服务

    最后,进行一些收尾工作

    chkconfig telent off   # 关闭telnet

    sudo rpm -e telnet-server-0.17-48.el6.x86_64 --nodeps  # 卸载telnet相关rpm包

    遇到问题:

    报错一:
    libssl.so.10: cannot open shared object file: No such file or directory

    解决方案:
    cd /usr/lib64(如果是32位系统路径则是/usr/lib)
    寻找libssl.so* 和 libcrypto.so*
    ll /usr/lib64/libssl.so*

    ll /usr/lib64/libcrypto.so*

    创建软链接
    ln -s /usr/lib64/libssl.so.1.0.0 libssl.so.10
    ln -s /usr/lib64/libcrypto.so.1.0.0 libcrypto.so.10

    报错二: 
    编译安装openssl报错:POD document had syntax errors at /usr/bin/pod2man line 69. make: *** [install_docs]
    mv /usr/binpod2man{,.bak}
       
    报错三:
    OpenSSL headers missing - please install first or check config.log ***
    yum install openssl-devel

       *** zlib.h missing - please install first or check config.log ***

    yum install zlib-devel

    错误四:

    提示给予的文件权限太高不安全,把指定的key文件给予700即可



    Sum:
    1.因为遇到了openssl 和openssh 不一致的问题,才发现有顺序问题。所以使用源码进行重新编译。先openssl,再 openssh
    2.操作前一定开启telnet以防万一,小心使得万年船。特别是生产环境下面
    3.不同环境下面操作可能会遇到一些新的问题。但是,仔细阅读报错代码也是一种学习过程

     



    参考资料:

    http://www.heminjie.com/system/linux/1766.html  

    https://www.jianshu.com/p/8c66fdab0c1f

    http://blog.sina.com.cn/s/blog_60bf8fe90101715h.html

    https://pkgs.org/  # rpm包下载

  • 相关阅读:
    Easyui-datagrid显示时间的格式化代码
    JSP页面与JSP页面之间传输参数出现中文乱码的解决方案
    SpringMVC中在web.xml中添加中文过滤器的写法
    SpringMVC的实现过程
    BeanFactory 和 ApplicationContext的区别
    Spring中的IoC(控制反转)具体是什么东西
    Spring/AOP框架, 以及使用注解
    面向切面编程
    Spring的属性注入, byName和byType还有注入List属性
    反射, getClass(), 和something.class以及类型类(转)
  • 原文地址:https://www.cnblogs.com/Cong0ks/p/9043618.html
Copyright © 2011-2022 走看看