因生成环境服务器安全扫描出的漏洞问题,只能升级最新的openssh,适用于centos6和centos7的升级使用。

一、编译前工作

openssl版本要求1.0.1以上,zlib版本要求1.1.4以上

备份原先ssh配置文件

cp /usr/bin/ssh /usr/bin/ssh_bak
cp /usr/sbin/sshd /usr/sbin/sshd_bak
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
cp /etc/init.d/sshd /etc/init.d/sshd_bak

下载openssh的官网地址

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

二、编辑安装openssh

openssh编译参数简述

--prefix=PREFIX        #安装到哪个路径,默认[/usr/local]
--sysconfdir=DIR #配置路径,默认[PREFIX/etc]
--mandir=DIR #帮助文档路径
--with-md5-passwords #开启使用MD5的密码
--with-zlib=PATH #指定zlib的安装路径
--with-ssl-dir=PATH #指定openssl的安装路径
tar zxf openssh-8.7p1.tar.gz
cd openssh-8.7p1
./configure --prefix=/usr/local/openssh-8.7p1/ --sysconfdir=/etc/ssh/ --with-md5-passwords --mandir=/usr/share/man
make -j 4 && make install

删除旧的ssh命令

rm -f /usr/libexec/openssh/sftp-server
rm -f /usr/bin/ssh-copy-id
rm -f /usr/bin/ssh-add
rm -f /usr/bin/ssh-agent
rm -f /usr/bin/ssh-keygen
rm -f /usr/bin/ssh-keyscan
rm -f /usr/bin/scp
rm -f /usr/bin/sftp
rm -f /usr/bin/ssh
rm -f /usr/sbin/sshd

替换新的ssh命令和常用工具,常用工具都在解压包内复制到系统路径下。

cp -p sftp-server  /usr/libexec/openssh/
cp contrib/ssh-copy-id /usr/bin/ssh-copy-id
cp -p /usr/local/openssh-8.7p1/bin/* /usr/bin
cp -p /usr/local/openssh-8.7p1/sbin/* /usr/sbin

设置权限

chmod -R 755 /usr/local/openssh-8.7p1/
chmod -R 755 /usr/bin/ssh*
chmod -R 755 /usr/bin/scp
chmod -R 755 /usr/bin/sftp
chmod -R 755 /usr/sbin/ssh*

复制SSH的启动脚本和设置开机自启

cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chown root.root /etc/init.d/sshd
chkconfig --add sshd

SSH重启之前可以先测试配置文件是否有问题,防止重启SSH失败,远程连接断了,如果是本地终端连接可以直接重启

/usr/local/openssh-8.7p1/sbin/sshd -t -f /etc/ssh/sshd_config

前面如果没有报错就可以重启SSH了

/etc/init.d/sshd restart

三、特别说明

centos7可能会因为/usr/lib/systemd/system/sshd.service文件而导致重启失败,因此写了if简单判断下

if [ -f /usr/lib/systemd/system/sshd.service ];then
cat >/usr/lib/systemd/system/sshd.service <<-EOF
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target
[Service]
ExecStart=/usr/sbin/sshd
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl restart sshd || /usr/local/openssh-8.7p1/sbin/sshd
else
/etc/init.d/sshd restart || /usr/local/openssh-8.7p1/sbin/sshd
fi

CentOS7编译安装升级openssh8.7p1的更多相关文章

  1. CentOS7编译安装Nginx-1.8.1和编译参数

    CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx    LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...

  2. centos7编译安装MySQL5.7.9

    title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...

  3. centos7 编译安装新版LNMP环境

    centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...

  4. CentOS7编译安装httpd-2.4.41 php7.3

    CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...

  5. Centos7 编译安装PHP7

    Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟悉,以下为大致的安装流程,大家可以参考 1.下载编译工具 yum groupinsta ...

  6. CentOS7编译安装php7.1配置教程详解

    这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...

  7. centos7编译安装nginx及无缝升级https

    安装依赖: yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 下载nginx: wget -c  ...

  8. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  9. Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.3 + Openssl 1.1.0h + Mariadb 10.3.7 + Nginx 1.14.0 + Asp.net. Core 2 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

随机推荐

  1. LINUX学习-Mysql安装

    一.安装环境 操作系统CentOS6.8 关闭SeLinux和iptables防火墙 二.网络yum源 将下面的软件下载到  /etc/yum.repos.d/   的目录下 官方基础:http:// ...

  2. IDEA2017 maven Spark HelloWorld项目(本地断点调试)

    作为windows下的spark开发环境 1.应用安装 首先安装好idea2017 java8 scalaJDK spark hadoop(注意scala和spark的版本要匹配) 2.打开idea, ...

  3. javaObject类—getClass方法

    1 package face_object; 2 /* 3 * Object:所有类的根类. 4 * Object是不断抽取而来的,具备所有对象都具备的共性内容. 5 * 常用的共性功能: 6 * 7 ...

  4. 使用 Dapr 缩短软件开发周期

    Microsoft DevOps 文档里的文章(https://docs.microsoft.com/zh-cn/azure/devops/report/dashboards/cycle-time-a ...

  5. Spring专题1: 静态代理和动态代理

    合集目录 Spring专题1: 静态代理和动态代理 为什么需要代理模式? 代理对象处于访问者和被访问者之间,可以隔离这两者之间的直接交互,访问者与代理对象打交道就好像在跟被访者者打交道一样,因为代理者 ...

  6. 使用Canny+hough实现钱币检测

    目录 Canny边缘提取算法实现 霍夫变换实现 参考 这个是北京邮电大学<计算机视觉>的一门作业: Canny边缘提取算法实现 首先定义一个Canny类 其init函数是: class C ...

  7. python 小兵(1)

    变量规则 1.只能以数字,字母,下划线命名 2.不能使用数字开头 3.不能使用python关键字 4.不建议用拼音或中文 5区分大小写 6推荐使用驼峰,下划线 全部大写是常量 注释 # 单行注释 (当 ...

  8. 一 简单介绍aws。

    aws入门 一 什么是aws? /* 概念: AWS就是 Amazon Web Servies, 亚马逊云计算服务平台. 是一款云服务. */ 二 aws可以做什么? // 可以在aws,创建我们需要 ...

  9. Spring源码-IOC部分-Spring是如何解决Bean循环依赖的【6】

    实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...

  10. CSP2019 Day2T3 树的重心

    显然如果我们直接枚举断哪条边,剩下的两颗树的重心编号非常不好求,一个常见的想法是我们反过来,考虑每个节点有多少种情况作为树的重心,计算每个点对答案的贡献. 下面我们就需要大力分类讨论了.假设我们现在考 ...