#!/bin/bash
build_dir=/data/project_build
openssl_download=https://www.openssl.org/source/openssl-1.1.1m.tar.gz
openssh_download=https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz
[ -d $build_dir ]|| mkdir -p $build_dir
yum install zlib-devel wget openssl-devel pam-devel gcc make perl zlib zlib-devel pam pam-devel -y
#下载编译包
cd $build_dir
wget $openssh_download
wget $openssl_download --no-check-certificate
tar xf openssl*.tar.gz
cd openssl*
openssl_version=`pwd|awk -F'/' '{print $NF}'`
./config --prefix=/usr/local/${openssl_version}
make && make install
ln -s /usr/local/${openssl_version} /usr/local/openssl
mv /usr/bin/openssl /usr/bin/openssl_old
#mv /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
openssl version
##openssh
cd $build_dir
#备份
mkdir /etc/ssh_old
mv /etc/ssh/* /etc/ssh_old/
cp -r /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
###停止ssh服务,并卸载原有的openssh###
systemctl stop sshd
systemctl is-active sshd
#rpm -e --nodeps `rpm -qa | grep openssh`
yum -y remove openssh-clients openssh openssh-server
#编译安装
tar xf openssh*.tar.gz
cd openssh*
openssh_version=`pwd|awk -F'/' '{print $NF}'`
./configure --prefix=/usr/local/${openssh_version} --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --with-pam --with-ssl-engine
make && make install
ln -s /usr/local/${openssh_version} /usr/local/openssh
#修改配置等
cp ${build_dir}/${openssh_version}/contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
sed -i 's/Subsystem/#Subsystem/g' /etc/ssh/sshd_config
echo 'Subsystem sftp /usr/local/openssh/libexec/sftp-server'>> /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication\ yes/PasswordAuthentication\ yes/g' /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
#创建软连接
ln -s /usr/local/openssh/sbin/sshd /sbin/sshd
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
ln -s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add
ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
ln -s /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
ln -s /usr/local/openssh/bin/scp /usr/bin/scp
ssh -V
chkconfig sshd on
systemctl restart sshd复制