具体需求

这几天生产环境服务器又进行了安全扫描,每次都会报一下漏洞错误。虽然只有一个高危问题,但是每次看到ssh远程漏洞都很烧脑 “主要是里面坑太多了”,闲话就不说了,今天我们来看看从redhat7.4 的openssh7.4、7.6、8.1离线网的环境中升级到openssh8.4p1吧!!

 漏洞以及环境问题

OpenSSH 命令注入漏洞(CVE-2020-15778) 报的远程漏洞问题,因为Linux服务器都在公司内部,不能连接公网。

 需要注意

为了防止升级失败,可以在升级之前安装telnet服务,通过Telnet连接服务器进行升级。如果大家觉得麻烦或者冒险一下安装telnet这步骤可以省略。

1、安装telnet,防止ssh升级失败导致链接失败
rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm
rpm -ivh telnet-0.17-64.el7.x86_64.rpm

下载地址:telnet-server-0.17-64.el7.x86_64、telnet-0.17-64.el7.x86_64、xinetd-2.3.15-14.el7.x86_64
2、在防火墙上开放telnet端口
firewall-cmd --zone=public --add-port=23/tcp --permanent
----加载配置生效
firewall-cmd --reload
—加入自启动
chkconfig telnet on
systemctl enable telnet.socket
systemctl start telnet.socket
----默认不允许root连接,所以新增了账号
useradd atest
passwd atest

下载依赖openssl、zlib、openssh

下载安装文件:openssh8.4需要的 openssl-1.1.1g, openssh-8.4p1,zlib-1.2.11

解压升级包

  1.  

tar -zxvf Zlib-1.2.11.tar.gz
tar -zxvf openssh-8.4p1.tar.gz
tar -zxvf Openssl-1.1.1g.tar.gz

编译安装zlib

  1. cd zlib-1.2.11
  2. ./configure --prefix=/usr/local/zlib
  3. make && make install

编译安装openssl

  1. cd openssl-1.1.1g
  2. ./config --prefix=/usr/local/ssl -d shared
  3. make && make install
  4. echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
  5. ldconfig -v

安装openssh

  1. 1 cd openssh-8.4p1
  2. 2 ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
  3. 3 make && make install
  4. sshd_config文件修改
  5. 5 echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
  6. 6 echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
  7. 7 echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

备份原有文件,并将新的配置复制到指定目录

  1. 1 mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. 2 cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
  3. 3 mv /usr/sbin/sshd /usr/sbin/sshd.bak
  4. 4 cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
  5. 5 mv /usr/bin/ssh /usr/bin/ssh.bak
  6. 6 cp /usr/local/openssh/bin/ssh /usr/bin/ssh
  7. 7 mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
  8. 8 cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
  9. 9 mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
  10. 10 cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

 启动sshd

  1. systemctl restart sshd.service
    [root@localhost ~]# ssh -V
  2. OpenSSH_8.4p1, OpenSSL 1.1.1g 21 Apr 2020

 报错问题以及解决方案

如果sshd服务器无法启动,可以试试以下方法:

先停掉sshd服务,将systemctl原服务器删除,使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,重启即可

  1. systemctl stop sshd.service
  2. rm -rf /lib/systemd/system/sshd.service
  3. systemctl daemon-reload
  4. cp /opt/openssh8.4/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
  5. /etc/init.d/sshd restart
  6. systemctl status sshd
  7. systemctl daemon-reload

以上文件存放路径我放到根目录 /opt/下面了,可以按你自己解压文件路径即可。

添加开机启动

  1. chkconfig --add sshd
  2.  
  3. chkconfig --list sshd

最后上一张图查看ssh启动状态

systemctl status sshd

这一步ssh服务器已安装完成。

如果遇到xshell 和SecureCRT 提示:

Key exchange failed.
No compatible key exchange method. The server supports these methods: curve25519

请大家把 Xshell 和CRT 升级到更高版本吧!

到此,完成了openssh 7.6升级到 8.4版本已完成,希望对大家有所帮助。

redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法的更多相关文章

  1. 关于Chrome 67 以后版本无法离线安装扩展的解决方法

    升级了Chrome,突然发现扩展管理页面有问题—— 无法离线安装扩展,拖拽crx文件至该页面,Chrome竟然一直提示“无法从该网站添加应用,扩展程序和用户脚本”. 如图: 谷歌自Chrome 67版 ...

  2. pip3 升级失败的解决方法!亲测有效

    pip3 --default-timeout=10000 install -U pip 注意:由于防火长城的存在,会导致更新失败,如果你加上--default-timeout=10000  这个就ok ...

  3. 实战redhat6.5离线升级openssl&openssh

    记录一次RedHat6.5升级openssl&openssh踩坑填坑.由于机房信息安全员用绿盟扫描出服务器openssh有8个重要的安全漏洞,最好的解决方式就是升级版本. 注意事项: 先升级o ...

  4. centos7 离线升级/在线升级操作系统内核

    目录 一.前言 二.系统环境 三.系统内核下载网址 四.centos7离线升级系统内核 1.先查看系统环境 2.离线升级系统内核 五.在线升级系统内核 一.前言 CentOS(Community EN ...

  5. Android Studio下载及离线升级方法

    由于众所周知的原因,android官网无法访问,所以我们要用到翻.墙.工具,我用的是自.由.门,大家自行搜索下载. android studio下载地址: https://dl.google.com/ ...

  6. Debian7离线升级bash漏洞—然后修复方法

    ### 昨天还说的传说要又一次出补丁,今天就都出来了.基本操作一致就是測试结果不一样.继续修复 Debian7 wheezy版本号的bash漏洞,例如以下操作: 1.測试是否须要升级 # env x= ...

  7. CentOS7安装CDH 第十一章:离线升级CDH版本

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  8. suse 12 升级 OpenSSH-7.2p2 到 OpenSSH-8.4p1

    文章目录 1.查看当前当前环境信息 1.1.查看openssh当前版本 1.2.查看当前linux发行版 2.部署telnet-server 2.1.下载telnet-server 2.2.配置tel ...

  9. 记录openssl和openssh升级中遇到的问题以及解决方法

    本文档讲述的升级操作是基于操作系统centos6.5,使用的openssl版本是openssl-1.0.2l.tar.gz,openssh版本是openssh-7.6p1.tar.gz. 1. 依赖检 ...

随机推荐

  1. GAN在seq2seq中的应用 Application to Sequence Generation

    Improving Supervised Seq-to-seq Model 有监督的 seq2seq ,比如机器翻译.聊天机器人.语音辨识之类的 . 而 generator 其实就是典型的 seq2s ...

  2. 使用maven整合mybatis时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    分析原因是mybatis的映射文件的问题,首先进行分析排查: 1.检查mapper接口和对应的xml文件的包名是否对应 2.检查xml文件的namespace与mapper接口的包名是否对应 3.检查 ...

  3. 排序算法:归并排序(Merge Sort)

    归并排序 归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解. 归并排序将排序数组A[1. ...

  4. 【漏洞复现】WinRAR目录穿越漏洞(CVE-2018-20250)复现

    前言 这漏洞出来几天了,之前没怎么关注,但是这两天发现开始有利用这个漏洞进行挖矿和病毒传播了,于是想动手复现一波. WinRAR 代码执行相关的CVE 编号如下: CVE-2018-20250,CVE ...

  5. CF877E Danil and a Part-time Job

    题目大意: link 有一棵 n 个点的树,根结点为 1 号点,每个点的权值都是 1 或 0 共有 m 次操作,操作分为两种 get 询问一个点 x 的子树里有多少个 1 pow 将一个点 x 的子树 ...

  6. Vue:Vue-Cli 实现的交互式的项目脚手架

    一.这份文档是对应 @vue/cli.老版本的 vue-cli 文档请移步https://github.com/vuejs/vue-cli/tree/v2#vue-cli-- Vue CLI 是一个基 ...

  7. vscode 插件保存记录

  8. ztree通过ajax加载json数据中文乱码的解决方法:springmvc配置

    一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: async: { enable ...

  9. 爬虫之Selenium

    简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...

  10. C++虚函数与多继承

    虚函数 C++用虚函数实现运行时多态,虚函数的实现是由两个部分组成的,虚函数指针与虚函数表. 虚函数指针(vptr)是指向虚函数表的指针,在一个被实例化的对象中,它总是被存放在该对象的地址首位.而虚函 ...