redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法

具体需求

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

漏洞以及环境问题

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

需要注意

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

redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法

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
useradd atest
passwd atest

下载依赖openssl、zlib、openssh

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

解压升级包

undefined

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

编译安装zlib

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

编译安装openssl

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

安装openssh

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

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

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

启动sshd

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

报错问题以及解决方案

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

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

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

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

添加开机启动

chkconfig --add sshd

chkconfig --list sshd

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

systemctl status sshd

redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法

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

如果遇到xshell 和SecureCRT 提示:

Key exchange failed.

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

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

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

Original: https://www.cnblogs.com/angelasp/p/13926453.html
Author: Angelasp
Title: redhat 7.4从openssh7.6离线升级openssh8.4p1解决方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612180/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL max() min() 函数取值错误

    今天日志出现异常,一步一步debug发现SQL语句返回值出错,进一步发现是max()函数返回出错。点击跳转解决办法,赶时间的朋友可以去获得答案。当然我还是希望大伙看看原由。 sel…

    数据库 2023年6月16日
    0205
  • Java并发编程之AQS以及源码解析

    文章目录 概览 实现思路 实现原理 * 源自CLH锁 AQS数据模型 CAS操作 主要方法 * 自定义同步器的实现方法 AQS定义的模板方法 源码解读 * 等待状态释义 AQS获取…

    数据库 2023年6月6日
    0106
  • 初识MySQL数据库

    一 、引言 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住双十一期间全国的购票需求,你怎么写? 因为同时抢票的人太多,你的程序不可能写在一台机…

    数据库 2023年5月24日
    0136
  • MySQL锁:03.InnoDB行锁

    传送门:MySQL锁:01.总览传送门:MySQL锁:02.InnoDB锁传送门:MySQL锁:03.InnoDB行锁 InnoDB 行锁 锁排查可以用的视图和数据字典 InnoD…

    数据库 2023年6月16日
    0170
  • Mysql常用30种SQL查询语句优化方法

    1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 …

    数据库 2023年6月16日
    0142
  • Consul 入门-运行

    HashiCorp Consul 是由 HashiCorp 公司开发的,它是一家专注于 DevOps 工具链的公司,旗下的明星级产品包括 Vagrant、Terraform、Vau…

    数据库 2023年6月6日
    0104
  • Mybatis-Plus json 格式数据查询

    // List 存储 json 格式后的查询 .apply("JSON_CONTAINS(JSON_EXTRACT(order_id_list, ‘$.data[*]’)…

    数据库 2023年6月6日
    0283
  • 【Java基础】– FileUtils工具类常用方法

    1.FileUtils介绍 文件IO是我们日常项目中经常使用到的基础API,常见的IO读写操作基础类字节流InputStream与OutputStream、字符流Reader与Wr…

    数据库 2023年6月6日
    0397
  • mybatisplus不支持sum,但支持这个

    我们知道,要对数据求和,写sql很简单:select sum(exp) from table_name我们在用mybatisplus做求和计算的时候,mybatisplus的Wra…

    数据库 2023年6月9日
    0260
  • 浅谈多线程中数据的绑定和赋值

    我们知道,微软的.NET控件做了大量的工作,用起来还是不错的,一般的数据绑定或者赋值比较简单。如下所示 文本赋值: txtTest.Text = “abc”…

    数据库 2023年6月11日
    090
  • VM Ware 给Centos虚拟机配置静态IP

    前言:在大家的日常运维工作中,肯定多多少少都会用到虚拟机,但是默认情况下VMware创建的虚拟机每次启动都有可能更换IP这就对我们的工作造成了一定的麻烦,下面我就给大家介绍下,如何…

    数据库 2023年6月9日
    0113
  • MyBatis(三)-动态SQL

    1、if 注意:test里面使用的参数,可以是mybatis的默认参数,也可以是实体属性名,但是不能是没有指定别名的参数名(尤其是单个参数,也必须起别名,否则异常); 单独使用if…

    数据库 2023年6月16日
    0115
  • Collections.singletonList方法

    这个方法主要用于只有一个元素的优化, 减少内存分配,无需分配额外的内存,可以从SingletonList内部类看得出来,由于只有一个element,因此可以做到内存分配最小化,相比…

    数据库 2023年6月16日
    0115
  • [Mysql]如何查看初次安装后的默认密码

    mysql初次安装时,会设置一个临时密码,不允许用空密码直接登录: ubuntu系统上这个密码的存放位置是 /etc/mysql/debian.cnf Original: http…

    数据库 2023年6月16日
    0110
  • Mall 动态权限学习参考

    代码仓库 https://github.com/Rain-with-me/JavaStudyCode/tree/main/4-springboot-security-dynic 本…

    数据库 2023年6月14日
    0109
  • 解决Laravel中自带分页函数links()分页样式布局显示混乱的问题

    相信用过Larvel框架的小伙伴或多或少都遇到过links()布局混乱的问题 恰巧我今天又一次遇到了这个问题 于是便记录下来,也给才入坑的小伙伴提供一些解决方案 首先,我如果直接使…

    数据库 2023年6月14日
    0128
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球