#!/bin/bash # install_ssh() { NOW=`date +%Y%m%d` setenforce 0 cd /usr/local/ #Decompression installation package tar -xvf /usr/local/openssh-7.9p1.tar.gz tar -xvf /usr/local/openssl-1.1.0h.tar.gz openssh_dir=/usr/local/openssh if [ -d $openssh_dir ];then rm -rf $openssh_dir fi mv /usr/local/openssh-7.9p1/ /usr/local/openssh/ #Back up original files mv /etc/init.d/sshd /etc/init.d/sshd_$NOW mv /etc/ssh /etc/ssh_$NOW mv /etc/ssl /etc/ssl_$NOW mv /usr/bin/openssl /usr/local/openssl_$NOW mv /usr/include/openssl /usr/include/openssl_$NOW mv /usr/lib/openssl /usr/lib/openssl_$NOW #Install the package of openssl cd /usr/local/openssl-1.1.0h/ ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib64 shared zlib-dynamic make depend make make MANDIR=/usr/share/man MANSUFFIX=ssl install ldconfig -v #Install the package of openssh and hidden version sed -i 's/OpenSSH_7.9/OpenSSH/' /usr/local/openssh/version.h cd /usr/local/openssh/ ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/ssl --with-md5-passwords --with-pam=enable --mandir=/usr/share/man --without-openssl-header-check make make install #Copy system files cp /usr/local/openssh/contrib/redhat/sshd.init /etc/init.d/sshd echo "PermitRootLogin yes" >> /etc/ssh/sshd_config sed -i 's@/sbin/restorecon /etc/ssh/ssh_host_key.pub@@' /etc/init.d/sshd #The solution to Centos 7 if [ `cat /etc/redhat-release | awk -F . '{print $1}' | awk '{print $NF}'` -eq 7 ];then mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.bak mv /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd.bak_1 systemctl daemon-reload fi #Login to other server configurations cat >> /etc/ssh/ssh_config << EOF IPQoS lowdelay throughput EOF #Complete the installation and restart the service chkconfig sshd on rm -rf /usr/local/openssh-7.9p1.tar.gz rm -rf /usr/local/openssl-1.1.0h.tar.gz service sshd restart } check_depend_pack() { #Check for dependent packages NUM=`rpm -qa gcc zlib-devel perl | wc -l` if [[ $NUM -lt 3 ]];then echo -e " 33[43;31mSorry Sir. You need to install package gcc and zlib-devel and perl. 33[0m" else install_ssh fi } #Program entry check_depend_pack