分享一次OPENssh批量升级过程和升级脚本

1         ssh版本检查

本文档针对于ssh版本低于7.0的系统,升级为openssh7.5 p1。

ssh –V
[[email protected] ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

2         OPENssh7.5安装步骤

卸载原有openssh

yum remove openssh -y

准备编译环境:

yum install gcc openssl-devel zlib-devel

上传openssh安装包到/mnt并解压进行编译:

tar zxvf openssh-7.5p1.tar.gz
cd openssh-7.5p1
./configure
make && make install

拷贝ssh服务文件

cp /usr/local/bin/ssh /usr/bin/ssh
cp /usr/local/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
cp /mnt/openssh-7.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp ./contrib/redhat/sshd.init /etc/init.d/sshd

修改配置文件

修改/etc/ssh/sshd_config

将#PermitRootLogin修改为PermitRootLogin yes

修改/usr/libexec/sftp-server为/usr/local/libexec/sftp-server

修改 /etc/init.d/sshd

将SSHD=/usr/sbin/sshd 改为 SSHD=/usr/local/sbin/sshd

将/usr/sbin/ssh-keygen -A 改为 /usr/local/bin/ssh-keygen -A

在 ‘$SSHD $OPTIONS && success || failure’这一行上面加上一行 ‘OPTIONS="-f /etc/ssh/sshd_config"’

加入系统服务

chkconfig --add sshd
chkconfig sshd on

检查服务

chkconfig --list |grep sshd
sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off

启动服务

service sshd start

检查ssh版本

[[email protected] ~]# ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.1e-fips 11 Feb 2013

3         OPENssh升级脚本

根据以上升级过程编写了脚本自动执行操作,脚本内容如下:

#!/bin/bash
sshInst()
{
       yum remove openssh -y
       yum install gcc openssl-devel zlib-devel -y
       cd /mnt
       tar zxvf openssh-7.5p1.tar.gz -C /mnt/
       cd ./openssh-7.5p1
       ./configure
       make && make install
 
}
 
CHG_SSHD()
{
       chmod +x /etc/init.d/sshd
       OPT_VALUE='OPTIONS="-f /etc/ssh/sshd_config"'
       OPT_EXIST=`grep "${OPT_VALUE}" /etc/init.d/sshd`
        if [ -z "${OPT_EXIST}" ];then
                sed -i '/$SSHD $OPTIONS &&/i\\t'"${OPT_VALUE}"'' /etc/init.d/sshd
        else
                echo ${OPT_EXIST}
        fi
        PATH_EXIST=`grep "${NPATH}" /etc/init.d/sshd`
        if [ -n "${PATH_EXIST}"  ];then
                echo "${PATH_EXIST}"
        else
                sed -i "s:${OPATH}:${NPATH}:" /etc/init.d/sshd
        fi
              echo "/etc/init.d/sshd file changes completed."
}
CHG_CONF()
{
##Chenge /etc/ssh/sshd_config 
       cp sshd_config /etc/ssh/sshd_config
       sed -i '/#PermitRootLogin/i\PermitRootLogin yes' /etc/ssh/sshd_config
       PATH_EXIST=`grep "${NPATH}" /etc/ssh/sshd_config`
       if [ -z "${PATH_EXIST}" ];then
              sed -i "s:${OPATH}:${NPATH}:" /etc/ssh/sshd_config
       else
              echo "${PATH_EXIST}"
       fi
       echo "/etc/ssh/sshd_config file changes completed."
}
 
OPATH=/usr/
NPATH=/usr/local/
echo -n "The SSH current version is:" 
ssh -V 
while true;do
    echo -n "Continue to update?(yes/no)"
    read INPUT
    case $INPUT in
        Y|y|YES|yes)
            sshInst
      echo -n "Press any key to continue....."
      read AnyKey
 
      cp /usr/local/bin/ssh /usr/bin/ssh
      echo "Copying ssh....Done."
      cp /usr/local/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
      echo "Copying ssh_host_ecdsa_key.pub....Done."
      cp /mnt/openssh-7.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
      echo "Copying sshd....Done."
      CHG_SSHD
      CHG_CONF
      break;;
        N|n|NO|no)
          echo exited
          exit ;;
        "")
      break;;
  esac
done
chkconfig --add sshd
chkconfig sshd on
service sshd start
echo "Operation is completed."

原文地址:http://blog.51cto.com/1459687/2112234

时间: 2024-11-03 18:32:40

分享一次OPENssh批量升级过程和升级脚本的相关文章

centos7升级OpenSSH(源码编译升级)

升级前首先确定当前openssh.openssl.zlib的版本,查看版本操作如下: [[email protected] ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 [[email protected] ~]# rpm -q zlib zlib-1.2.7-17.el7.x86_64 由此可以看到当前openssh版本为:7.4p1,openssl版本为:1.02k-fips,zlib 版本为1.2.7. 到相应的官网下载

通过 yum update 将系统从CentOS 6.2 升级到 CentOS 6.6 及升级过程中的简单排错

本文说明 本文写于2014年的WP中,后WP停止维护,今天翻到此记录整理下,记录于此,方便日后查看. 话说那时候写博客真是认真啊~哈哈~ 升级前的系统信息 [[email protected] ~]# uname -a Linux thatsit 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# uname -r 2.6.32

Unity5.x 项目升级过程中常见问题解决方案总结

最近整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享. 1:Unity4.x 项目中3D模型其材质丢失,成为"白模"?      解决方案:手工重新赋值材质贴图. 2:Unity4.x 项目中的NavMesh 升级报错?     "NavMesh asset format has changed. Please rebake the NavMesh data." ?     解决方案:按照字面含义,重新对静态物体进行烘焙即可. 3

iOS 9 升级过程汇中白苹果 iPhone或iPad 解决方案

最近想必有很多朋友升级了iOS 9,不过有部分朋友在升级过程中遇到了白苹果问题.也就是卡在升级过程中,不限重启.这时,你只能通过dfu进行升级了. ios9怎么进入dfu模式: 1.将你的iPhone关机. 2.同时按住开关机键和Home键. 3.当你看见白色的苹果Logo时,请松开开关机键,并继续保持按住Home键. 4.开启iTunes,等待其提示你进入恢复模式后,即可按住键盘上的Shift键,点击"恢复",选择相应的固件进行恢复.

PostgreSQL Master Slave升级过程

1.初始状态:Master,slave均为running状态. 2.升级过程 Master 1).关闭 master 记录最后检查点位置 (latest checkpoint location),这是宕机时间开始的地方 (This is where your downtime starts).postgres用户执行以下命令: $ pg_ctl -D $PGDATA stop -m fast $ pg_controldata  | grep "Latest checkpoint location

在win10升级过程中卡死救命办法

acer aspire 4750g在win10升级过程中卡死,又无法进入BIOS的情况下,我们可以通过盲刷BIOS的方法进入,方法如下: 准备一个U盘,将其格式化成FAT32格式(但不要制作启动引导盘) 下载对应机型的BIOS文件,用WinRAR解压,把其中有类似xxx.rom和xxx.fd的两个文件(有的是XXX.ROM和XXX.WPH), 复制到U盘根目录 取下笔记本电池,将U盘插入笔记本,插入电源适配器,同时按住Fn+Esc两个按键开机,注意开机时要按住两个按键,通电后再松开.这时笔记本会

Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法. 1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本. 2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数.主要用与显示UI上的进度条. 3.for

WDCP从php5.2升级到5.3的办法,以及升级过程中iconv错误的处理

从wdcp官方论坛我们可以找到一个询问升级的帖子,然后管理员在回复中也提供了升级方法: cd /tmp wget -c http://dl.wdlinux.cn:5180/soft/php-5.3.10.tar.gz tar zxvf php-5.3.10.tar.gz cd php-5.3.10 ./configure --prefix=/www/wdlinux/php-5.3.10 --with-config-file-path=/www/wdlinux/etc --with-mysql=/

OTA制作及升级过程笔记【转】

本文转载自:http://www.it610.com/article/5752570.htm 1.概述 1.1   文档概要 前段时间学习了AndroidRecovery模式及OTA升级过程,为加深理解和防止以后遗忘,所以写这篇文档进行一个总结和梳理,以便日后查阅回顾.文档主要包括两部分,第一部分为OTA升级包的制作过程分析,第二部分为Recovery模式下OTA升级包安装过程的分析,其中包括Recovery模式分析及服务流程. 1.2   参考文献 <Recovery 开发指导> <A