Linux openssh8.0p1升级步骤(shell版本)
运维自动化时代,手动升级太徒劳了,为了提高效率及准确率,自动化安装是必备的。
下面是通过shell写的脚本。也可以将其应用到ansible上.
准备好安装文件:
openssh-8.0p1.tar.gz
openssl-1.1.0k.tar.gz
zlib-1.2.11.tar.gz
openssl-fips-2.0.16.tar.gz
perl-5.10.0.tar.gz(redhat5以下需要,由于编辑openssl,perl版本最底为5.10.0)
脚本内容如下:
#!/bin/bash
#
#setup && update openssh8.0p1 #Action state
mstate(){
if [ $? -eq 0 ];then
echo "--------------------------By installing--------------------------"
else
echo "--------------------------Installation failed--------------------"
exit 1
fi
} MDIR=`pwd` #zlib1.2.11
mzlib(){
if [ -d /usr/local/zlib-1.2.11 ];then
echo "------------------------zlib-1.2.11 installation complete------------"
else
echo "-----------------------Start setup zlib------------------------------"
cd $MDIR
tar -xzvf zlib-1.2.11.tar.gz >> /dev/null
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib-1.2.11 && make && make install
mstate
fi
} #openssl-fips
mopenssl_fips(){
if [ -d /usr/local/ssl/fips-2.0 ];then
echo "-------------openssl-fips-2.0 installation complete-----------------"
else
cd $MDIR
tar -xzvf openssl-fips-2.0.16.tar.gz >> /dev/null
cd openssl-fips-2.0.16
./config && make && make install
mstate
fi
} mperl(){
if [ -d /usr/local/perl-5.10.0 ];then
echo "-------------perl-5.10.0 installation complete----------------------"
else
cd $MDIR
tar -xzvf perl-5.10.0.tar.gz >> /dev/null
cd perl-5.10.0
./configure.gnu -des -Dprefix=/usr/local/perl-5.10.0 && make && make install
mstate
export PATH=/usr/local/perl-5.10.0/bin:$PATH
fi
}
#openssl-1.1.0k
mopenssl(){
if [ -d /usr/local/openssl-1.1.0k ];then
echo "---------------openssl-1.1.0k installation complete----------------"
else
echo "-------------------Start setup openssl-----------------------------"
cd $MDIR
tar -xzvf openssl-1.1.0k.tar.gz >> /dev/null
cd openssl-1.1.0k
./config --prefix=/usr/local/openssl-1.1.0k --with-fipslibdir=/usr/local/ssl/fips-2.0/lib/ && make && make install
mstate
grep /usr/local/openssl-1.1.0k/lib/ /etc/ld.so.conf
if [ $? -ne 0 ];then
echo "/usr/local/openssl-1.1.0k/lib/" >> /etc/ld.so.conf
fi
ldconfig
fi
} #openssh-8.0p1
mopenssh(){
if [ -d /usr/local/openssh-8.0p1 ];then
echo "---------------------openshh-8.0p1 installation complete----------"
else
echo "----------------------Start setup openssh-------------------------"
mopenssh_bak
cd $MDIR
tar -xzvf openssh-8.0p1.tar.gz >> /dev/null
cd openssh-8.0p1
./configure --prefix=/usr/local/openssh-8.0p1 --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl-1.1.0k --with-zlib=/usr/local/zlib-1.2.11 --with-md5-passwords && make && make install
mstate
fi
} #openssh bak
mopenssh_bak(){
echo "--------bak old openssh config files---------------------------------"
if [ -d /etc/ssh ];then
mv /etc/ssh /etc/ssh_`date +%Y%m%d`
echo "-----------------------/etc/ssh mv complete------------------------"
else
echo "---------------------/etc/ssh no exist-----------------------------"
fi
} #openssh config (redhat 5 6)
mopenssh_config(){
\cp -a $MDIR/openssh-8.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
sed -i 's/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh-8.0p1\/sbin\/sshd/g' /etc/init.d/sshd
sed -i 's/\/usr\/bin\/ssh-keygen -A/\/usr\/local\/openssh-8.0p1\/bin\/ssh-keygen -A/g' /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
} mopenssh_config7(){
\cp -a $MDIR/openssh-8.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
sed -i 's/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh-8.0p1\/sbin\/sshd/g' /etc/init.d/sshd
sed -i 's/\/usr\/bin\/ssh-keygen -A/\/usr\/local\/openssh-8.0p1\/bin\/ssh-keygen -A/g' /etc/init.d/sshd
if [ -f /usr/lib/systemd/system/ssh* ];then
mv -f /usr/lib/systemd/system/ssh* $MDIR
echo "-------------------move redhat7 systemctl sshd.service-----------"
else
echo "-------------------redhat7 systemctl sshd.service no file--------"
fi
chkconfig --add sshd
chkconfig sshd on
} #openssh path
mopenssh_path(){
grep "export PATH=/usr/local/openssh-8.0p1/bin:$PATH" /etc/profile
if [ $? -ne 0 ];then
echo "export PATH=/usr/local/openssh-8.0p1/bin:$PATH" >> /etc/profile
source /etc/profile
fi
} magain(){
read -p "Please try again(y/Y) :" mresult
if [ $mresult == 'y' ] || [ $mresult == 'Y' ];then
echo "***************************************************************"
else
echo "**********************Question*********************************"
exit 1
fi
} mrestart(){
echo "---------------------------sshd service restart--------------------"
service sshd restart } m5(){
echo "-------------------------------------------------------------------"
sleep 3
mzlib
echo "-------------------------------------------------------------------"
sleep 3
mopenssl_fips
echo "-------------------------------------------------------------------"
sleep 3
mperl
echo "-------------------------------------------------------------------"
sleep 3
mopenssl
echo "-------------------------------------------------------------------"
sleep 3
mopenssh
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_config
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_path
echo "-------------------------------------------------------------------"
} m6(){
echo "-------------------------------------------------------------------"
sleep 3
mzlib
echo "-------------------------------------------------------------------"
sleep 3
mopenssl_fips
echo "-------------------------------------------------------------------"
sleep 3
mopenssl
echo "-------------------------------------------------------------------"
sleep 3
mopenssh
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_config
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_path
echo "-------------------------------------------------------------------"
} m7(){
echo "-------------------------------------------------------------------"
sleep 3
mzlib
echo "-------------------------------------------------------------------"
sleep 3
mopenssl_fips
echo "-------------------------------------------------------------------"
sleep 3
mopenssl
echo "-------------------------------------------------------------------"
sleep 3
mopenssh
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_config7
mopenssh_config
echo "-------------------------------------------------------------------"
sleep 3
mopenssh_path
echo "-------------------------------------------------------------------"
mrestart
}
#system_release
echo "-------------------------system release----------------------------"
cat /etc/redhat-release
echo "---------------------------select release--------------------------"
PS3="Please select a number(1,2,3,4) :"
select mrelease in redhat5 redhat6 redhat7 Quit
do
case $mrelease in
redhat5)
echo "Start $mrelease Setup openssh"
echo "---------------------you select redhat5----------------------"
magain
echo "--------------------------------------------------------------"
m5
echo "--------------------------------------------------------------"
;;
redhat6)
echo "Start $mrelease Setup openssh"
echo "---------------------you select redhat6-----------------------"
magain
echo "--------------------------------------------------------------"
m6
echo "--------------------------------------------------------------"
;;
redhat7)
echo "Start $mrelease Setup openssh"
echo "---------------------you select redhat7-----------------------"
magain
echo "--------------------------------------------------------------"
m7
echo "--------------------------------------------------------------"
;;
Quit)
echo "---------------------Goodble----------------------------------"
exit 0
;;
*)
echo "---------------------Sorry, No release------------------------"
;;
esac
done
Linux openssh8.0p1升级步骤(shell版本)的更多相关文章
- Linux openssh8.0p1升级步骤
前期准备开启本机telnet服务,以防openssh升级失败无法连接服务器.注:redhat 5 6 和 redhat7 开机启动配置相关文件不同,请注意 1.安装zlibtar -xzvf zlib ...
- Linux下python升级步骤
先安装openssl,openssl-devel yum install openssl yum install openssl-devel 1切换到指定的目录下: cd /usr/local 2下载 ...
- linux python2.x 升级python3.x
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- centos7 升级openssh到openssh-8.0p1版本
环境介绍 centos7.3和centos7.6升级完毕测试登录ssh以及重启后登录ssh均无问题. 前期请自行配置好yum源(如果不会请百度) 整个过程不需要卸载原先的openssl包和openss ...
- Linux系统下升级Python版本步骤(suse系统)
Linux系统下升级Python版本步骤(suse系统) http://blog.csdn.net/lifengling1234/article/details/53536493
- Linux下python版本的升级步骤
1.先下载,你要升级的python版本(我升级的是python3.3.0) 可使用系统自带下载工具wget下载: wget http://www.python.org/ftp/python/3.3.0 ...
- 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
版本:v1.2 Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...
- mongo - 升级步骤
升级步骤1. 关闭balancer登陆mongos,执行sh.stopBalancer(),或者 连接到mongos>use config>db.settings.update( { _i ...
- mysql在linux下的安装(5.7版本以后)
1.添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组. ①groupadd mysql ②useradd -r -g mysql mysql 2.将二进制文件解压到指定的 ...
随机推荐
- 3、Shiro授权
Shiro授权过程和认证过程相似: 项目结构: package com.shiro.shiroframe; import org.apache.shiro.SecurityUtils; import ...
- Win7下使用TortoiseGit设置保存密码
1. 打开 TortoiseGit 设置,编辑 .gitconfig 文件,如图: 2. 添加下面两行配置,如图: [credential] helper = store 3. 保存退出即可
- centOS7杀死进程命令
查看当前所有正在运行的进程,可以看到80端口被httpd占用了(80端口希望分配给nginx使用,而不是httpd) netstat -tpnul 这里以杀死httpd进程为例: 先查看 httpd ...
- Python基本语法_基本数据类型_序列类型详解
目录 目录 序列 序列的标准操作符 切片操作符 一个例子 字符串的连接 序列的功能函数 enumerate 枚举出序列对象的元素 len 获取序列对象的长度 min 取出sequence中的最小值 m ...
- 阶段3 1.Mybatis_09.Mybatis的多表操作_2 完成account表的建立及实现单表查询
mybatis中的多表查询: 示例:用户和账户 一个用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户) ...
- lnmp 安装 访问 配置 laravel
环境要求 Lnmp 一键安装包安装 php7.2+ Mysql 5.7 Innodb 开启 第一步 上传项目到 /home/wwwroot/default/ 或者composer命令行安装larave ...
- 【MyBatis】-----【MyBatis】---表级联系【一对一】--增删改查
一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration ...
- hibernate 2 多对多映射
一.实体类 1.Classes.java package cn.gs.wwg.entity; import java.util.Set; public class Classes { private ...
- java基础笔记(2)
java中成员变量是有默认初始值的,而局部变量是没有的: 构造方法名和类名相同,没有返回值,即结构如下:public 构造方法名(): 实例化类的本质就是调用了类的构造方法: 如果自定义了构造方法,就 ...
- linux中文件属性
一. linux系统如何管理文件 1.1. 硬盘中的静态文件和inode a. 文件平时都在存放在硬盘中的,硬盘中存储的文件以一种固定的形式存放的,我们叫静态文件. b. 一块硬盘中可以分为两大区域: ...