1 ssh版本检查

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

ssh –V
[root@kuajing-db3 ~]# 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-.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 :off :off :on :on :on :on :off

启动服务

service sshd start

检查ssh版本

[root@oracle ~]# ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.1e-fips Feb

 

3 OPENssh升级脚本

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

#!/bin/bash
sshInst()
{
yum remove openssh -y
yum install gcc openssl-devel zlib-devel -y
cd /mnt
tar zxvf openssh-.5p1.tar.gz -C /mnt/
cd ./openssh-.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-.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 ssh -V chkconfig --add sshd #解决root用户无法登陆
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
chkconfig sshd on
service sshd start
echo "Operation is completed." #centos7重启ssh操作
#systemctl daemon-reload
#systemctl restart sshd

注意:代码copy可能出现编译错误,需要先进行如下处理

sed -i 's/\r$//' XXX.sh

会把 XXX.sh 中的\r 替换成空白!

再次编译!成功!!

如果没有安装zlib,需要先安装zlib,再行脚本:

yum install zlib

openssh一键升级脚本(测试成功)的更多相关文章

  1. openssh一键升级脚本(只升级openssh,其它已有环境不变,解决root登录问题)

    #!/bin/bash ################################################################# ###### update openssl ...

  2. CentOS 升级 Python3 (附带: 一键升级脚本)

      升级环境   应用名称 版本 Python 3.5.2 Syatem CentOS 6.7         升级方法   [1]下载 Python 3: wget http://mirrors.s ...

  3. zabbix微信告警(虚拟机脚本测试成功,zabbix上收不到信息)

    前言: 使用zabbix直接运行脚本又可以正常接收.但是登录zabbix  web界面,测试!  动作显示已送达,但是微信并没有收到信息! 解决: 添加脚本参数,因为不添加脚本参数,调用不了你这个脚本 ...

  4. php环境一键升级脚本

    因为要解析PHP页面需要配置相应的PHP环境,而系统本身的php版本又大多不合适.网上那种一键lamp和lnmp的脚本很多,但是这样一来自己能够定制的空间则少了.所以我自己编写了个门用于安装php环境 ...

  5. LNMP一键安装包 PHP自动升级脚本

    LNMP一键安装包 PHP自动升级脚本 2011年03月15日 上午 | 作者:VPS侦探 前一段时间完成了lnmp一键安装包的PHP自动升级脚本,今天发布出来,如果想升级PHP版本的lnmp用户可以 ...

  6. asp.net 版本一键升级,后台直接调用升级脚本

    应客户需求,要求实现一个版本一键升级的功能,咨询过同事之后弄了个demo出来,后台代码如下: //DBConnModelInfo:连接字符串的对象 (包含数据库实例名,数据库名,登陆名,登陆密码) p ...

  7. 源码编译安装Apache-附一键部署脚本

    1.进入apache官网https://www.apache.org/,点击Download 2.如图选择 3.选择httpd 4.下载两个包,2.2为CentOS6使用,2.4为CentOS7使用 ...

  8. L2TP/IPSec一键安装脚本

    本脚本适用环境:系统支持:CentOS6+,Debian7+,Ubuntu12+内存要求:≥128M更新日期:2017 年 05 月 28 日 关于本脚本:名词解释如下L2TP(Layer 2 Tun ...

  9. Ubuntu18.04 一键升级Python所有第三方包

    一.pip是什么 pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 二.升级pip版本 1.默认Ubuntu自带的pip (pip 9.0.1)是基 ...

随机推荐

  1. PHP array_pad() 函数

    实例 返回 5 个元素,并将 "blue" 值插入到数组的新元素中: <?php$a=array("red","green");pri ...

  2. C/C++编程笔记:C++入门知识丨多态性和虚函数

    本篇要学习的内容和知识结构概览 多态性 编译时的多态性称为静态联编. 当调用重载函数时, 在编译期就确定下来调用哪个函数. 运行时的多态性称为动态联编. 在运行时才能确定调用哪个函数, 由虚函数来支持 ...

  3. HDU 1756 Cupid's Arrow 计算几何 判断一个点是否在多边形内

    LINK:Cupid's Arrow 前置函数 atan2 返回一个向量的幅角.范围为[Pi,-Pi) 值得注意的是 返回的是 相对于x轴正半轴的辐角. 而判断一个点是否在一个多边形内 通常有三种方法 ...

  4. Ynoi专练

    为了练习分块 莫队 bitset黑科技 我会写几道Ynoi 放到这里. bitset 每一位占1bit int 每一位占 4 bitye bool占1 bitye long long 8bitye L ...

  5. 软件tf版本是什么意思?

    对于iOS用户来说,有时候会听到tf版本软件,软件tf版本究竟是什么意思呢?它与正常在App Store中下载的软件有什么不同呢? 对于大多数iOS用户来说,一般都是从App Store中下载应用,凡 ...

  6. 002_centos7关闭防火墙

    防火墙是比较烦人的,在自己做实验,或者实际应用中,如果配置不好的话,会出现各种匪夷所思的问题,那么如何关闭呢 在centos7里,防火墙改为了firewalld进程 首先用命令firewall-cmd ...

  7. “随手记”开发记录day12

    就我们团队昨天的讨论,今天进行更改. 今天我们先简单的更改了之前的粉色背景图,因为用户反应总览界面的“总览”二字,是深粉色背景不太美观.进过多次更改之后使颜色变得更舒适.

  8. Redis服务之Redis Cluster

    在上一篇博客中我们聊到了redis的高可用组件sentinel的相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13429776.html:sentin ...

  9. git使用-远程仓库(github为例)

    1.登录github(没有先注册账号) 2.settings>SSH and GPG keys>New SSH key Title(自己填写即可) key需要git命令生成 ssh-key ...

  10. 算法学习笔记:最近公共祖先(LCA问题)

    当我们处理树上点与点关系的问题时(例如,最简单的,树上两点的距离),常常需要获知树上两点的最近公共祖先(Lowest Common Ancestor,LCA).如下图所示: 2号点是7号点和9号点的最 ...