最全CentOS7升级OpenSSH方案

在进级openssh的过程中碰到过很多多少坑,这里清算一篇最周全最平安的进级openssh的方案,供大师参考。

工具/原料

  • CentOS7
  • openssl-1.0.2o.tar.gz
  • openssh-7.7p1.tar.gz

安装启动telnet

  1. 1

    需要筹办的包

    :openssl-1.0.2o.tar.gz , openssh-7.7p1.tar.gz

    :pam-1.1.8-22.el7.x86_64.rpm   , pam-devel-1.1.8-22.el7.x86_64.rpm

    :zlib-1.2.7-17.el7.x86_64.rpm , zlib-devel-1.2.7-17.el7.x86_64.rpm

    :telnet-0.17-64.el7.x86_64.rpm , telnet-server-0.17-64.el7.x86_64.rpm

    :openssl-1.0.2k-12.el7.x86_64.rpm (需要这个低版本的rpm包是因为若是卸载openssl后如遇无法执行后续操作时,可以再次安装openssl,不至于造当作系统无法利用)

    这些依靠包可以百度搜刮下载,也可以经由过程yumdownload 东西来下载。

    如图:

    d1160924ab18972b42850b29eacd7b899f510a91.jpg
  2. 2

    进级openssh,先要开启telnet,确保telnet可以正常登岸。

    如许当openssh进级呈现问题的时辰,还可以经由过程telnet登录到办事器操作。

    安装依靠包pam,pam-devel,zlib,zlib-devel,telnet,telnet-server

    首先安装pam的包。先查看是否有pam已经安装。执行

    #rpm  -qa |grep pam

    8644ebf81a4c510f13f1a0f76c59252dd42aa522.jpg
  3. 3

    办事器上面有pam的包。

    采用rpm -U进级安装,省得rpm -e  --nodeps卸载包呈现问题。

    (并且真有可能呈现问题,尤其是zlib包)

    执行

    #rpm  -Uvh  pam-1.1.8-22.el7.x86_64.rpm

    #rpm -Uvh  pam-devel-1.1.8-22.el7.x86_64.rpm

    e4dde71190ef76c6a1fab7c69116fdfaaf516736.jpg
  4. 4

    安装xinted

    #rpm  -Uvh  xinetd-2.3.15-13.el7.x86_64.rpm

    1b4c510fd9f9d72aaa285cf0d82a2834359bbb8b.jpg
  5. 5

    安装zlib

    #rpm  -Uvh  zlib-1.2.7-17.el7.x86_64.rpm

    #rpm  -Uvh  zlib-devel-1.2.7-17.el7.x86_64.rpm

    a8773912b31bb0517deeffc53a7adab44bede011.jpg
  6. 6

    安装telnet

    #rpm  -Uvh   telnet-0.17-64.el7.x86_64.rpm

    #rpm  -Uvh   telnet-server-0.17-64.el7.x86_64.rpm

    4e4a20a4462309f72623e2ff7e0e0cf3d6cad68b.jpg
  7. 7

    开启xinetd

    #systemctl   start  xinetd

    查看状况

    #systemctl   status  xinetd

    #systemctl  enable  xinetd

    29381f30e924b8993c3737d562061d950b7bf6d0.jpg
  8. 8

    启动telnet

    # systemctl start telnet.socket

    # systemctl status telnet.socket

    # systemctl enable telnet.socket

    a9d3fd1f4134970addaa99c299cad1c8a6865d06.jpg
  9. 9

    默认环境下,telnet是不许可root登录的。

    执行号令:

    # echo "pts/0" >> /etc/securetty

    # echo "pts/1" >> /etc/securetty

  10. 10

    封闭selinux

    #vi /etc/selinux/config

    如下图将selinux设置为disable

    c8ea15ce36d3d53926f5842e3687e950342ab017.jpg
  11. 11

    封闭防火墙

    # systemctl stop  iptables

    编纂pam设置装备摆设文件,以便telnet许可root登录。

    # vi /etc/pam.d/login

    58ee3d6d55fbb2fb2605a8ff434a20a44623dc35.jpg
  12. 12

    如图注释这一行

    auth       required     pam_securetty.so

    10dfa9ec8a136327384832de9d8fa0ec09fac7b2.jpg
  13. 13

    重启xinetd,telnet办事

    #systemctl  restart  xinetd

    #systemctl  restart  telnet.socket

    然后从其他办事器操纵telnet测试登录(当然别的一台办事器上已经安装了telnet)

    #telnet  ip

    输入账号密码,登录当作功。

    telnet可以登录,现实上是开了别的一条可以登录办事器的通道,以免ssh进级犯错,造当作无法登录办事器。

    3bf33a87e950352a4b37d6e55f43fbf2b3118b8d.jpg

进级openssl

  1. 1

    先确保你的办事器上已经有gcc,gcc-c++。这两个是编译东西。

    #rpm  -qa  |grep  gcc

    没有安装。

    则执行安装,这里我已经下载了gcc,gcc-c++的包。

    若是你的办事器联网,可以执行:

    #yum  install  gcc  gcc-c++

    若是没有联网,就提前下载rpm包,可以采纳上面yumdownload方式从联网办事器上下载。

    建议yum安装,不然你将要下载良多依靠包。

    472309f7905298221a30c62edbca7bcb0b46d4d8.jpg
  2. 2

    上图,是为了安装gcc,gcc-c++,下载的所有依靠包。

    因为一起头安装的时辰,会返回下图依靠错误。

    然后按照依靠错误,下载了所有的依靠包。

    b17eca8065380cd702795d00ad44ad34588281fc.jpg
  3. 3

    如下图如许,彼此依靠的。

    安装这个,返回依靠错误(已安装的版本纷歧致造当作),安装阿谁就返回这个依靠错误。

    如许的,直接rpm -Uvh 后面跟这两个安装包的名字。

    a9d3fd1f4134970aefabefc299cad1c8a6865d07.jpg5243fbf2b21193133e44015d69380cd790238ddc.jpg
  4. 4

    卸载旧的openssl包。

    #rpm  -qa  |grep openssl

    c995d143ad4bd113656b49df56afa40f4afb05bc.jpg
  5. 5

    解压openssl安装包

    #tar  -xvf  openssl-1.0.2o.tar.gz

    卸载这些包。

    #for  i   in  $(rpm  -qa |grep  openssl);do  rpm  -e  $i --nodeps  ;done

    进入openssl-1.0.2o目次

    #cd   openssl-1.0.2o

    执行:

    #./config  shared

    e4dde71190ef76c6146502c69116fdfaae5167ac.jpg
  6. 6

    执行安装

    #make  &&  make   install

    d439b6003af33a876878e5f7ca5c10385243b5c2.jpg
  7. 7

    安装完毕。

    执行号令:

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

    #ldconfig

    设置装备摆设ssl库

    #cp /usr/local/ssl/lib/libssl.so.1.0.0  /usr/lib64

    #cp /usr/local/ssl/lib/libcrypto.so.1.0.0  /usr/lib64

    #ln -s /usr/lib64/libcrypto.so.1.0.0  /usr/lib64/libcrypto.so.10

    #ln -s /usr/lib64/libcrypto.so.1.0.0  /usr/lib64/libcrypto.so

    #ln -s /usr/lib64/libssl.so.1.0.0  /usr/lib64/libssl.so.10

    #ln -s /usr/lib64/libssl.so.1.0.0  /usr/lib64/libssl.so

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

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

    查看openssl版本

    #openssl  version  -a

    进级当作功

    b7003af33a87e950b7c816811c385343faf2b404.jpg

进级openssh

  1. 1

    解压openssh安装包

    #tar  xvf   openssh-7.7p1.tar.gz

    #cd  openssh-7.7p1

    卸载原openssh

    #rpm  -qa |grep  openssh

    55e736d12f2eb9383d739e1fd9628535e4dd6fc5.jpg
  2. 2

    卸载

    #for  i   in  $(rpm  -qa  |grep  openssh);do  rpm  -e  $i  --nodeps ;done

  3. 3

    执行:

    #./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords--with-pam --with-tcp-wrappers  --with-ssl-dir=/usr/local/ssl    --without-hardening

    a8ec8a13632762d0b9014352acec08fa513dc624.jpg
  4. 4

    删除原ssh设置装备摆设目次

    #rm  -rf  /etc/ssh

    安装

    #make   &&   make  install

    b219ebc4b74543a99dcb1c2112178a82b801140e.jpg
  5. 5

    安装完当作,执行设置装备摆设

    #cp  ./contrib/redhat/sshd.init    /etc/init.d/sshd

    #chkconfig --add sshd

    #chkconfig sshd on

    #chkconfig --list|grep sshd

    b8014a90f603738d8f5dedcfbf1bb051f919eccc.jpg
  6. 6

    查看版本

    #ssh  -V

    42a98226cffc1e17abfc6ddc4690f603728de998.jpg
  7. 7

    执行号令:

    #sed -i "32 aPermitRootLogin yes" /etc/ssh/sshd_config

    #service  sshd  restart

    进级完当作。

    从其他办事器ssh登录进级的办事器,登录当作功!

注重事项

  • 不要等闲卸载zlib软件
  • 发表于 2018-07-17 00:00
  • 阅读 ( 254 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论