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

#!/bin/bash
#################################################################
######    update openssl openssh scirpt                 #########
#####             Author:kl                                 #####
######           Date:2019/09/08                            #####
######        LastModified:2019/09/08                     #######
####  Warning:start telnet service before use the script    #####
#################################################################


####################################################################################
#            update openssh and openssl
                #########
                  #####
                    ##
####################################################################################
sshInst()
{
       yum install zlib  
       #停止当前ssh服务,并备份
       echo "停止服务"
       service sshd stop
       echo "备份服务"
       cp -rf /etc/ssh /etc/ssh.old
       cp /etc/init.d/sshd /etc/init.d/sshd.old
       yum remove openssh -y
       
       cd /mnt
       tar zxvf openssh-8.0p1.tar.gz -C /mnt/
       cd ./openssh-8.0p1
       ./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/iPermitRootLogin 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-8.0p1/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


echo "设置开机自启动"
chkconfig sshd on
service sshd restart

echo "#########################################################"
echo "################                         ################"
echo "################ openssh install sucess  ################"
echo "################                         ################"
echo "#########################################################"

echo "################      ssh version        ################"
echo "#########################################################"
ssh -V
echo "#########################################################"
echo "#########################################################"

#centos7重启ssh操作
#systemctl daemon-reload
#systemctl restart sshd
 
原文地址:https://www.cnblogs.com/windy-xmwh/p/11486637.html