导语:直接通过替换文件的方式更新openssh 版本。交付不方便下载和安装编译命令,尝试使用替换文件的方式升级openssh
ssh_update() {
# 开启ufw 220806
blue "18.升级替换ssh文件"
# ssh -V的输出不是标准输出,捕获不到,要加上2>&1
ssh_version=$(ssh -V 2>&1)
echo ssh_version $ssh_version
sshd_version=$(sshd -v 2>&1)
echo sshd_version $sshd_version
version_tag=`echo $ssh_version|awk '{print $1}' |sed 's/[^0-9]//g' `
echo version_tag $version_tag
if [[ $version_tag -gt "810" ]]
then
echo "ssh版本大于等于OpenSSH_8.1p1"
else
echo "ssh版本为$sshd_version 进行升级"
cp /usr/bin/openssl /usr/bin/openssl_bak
cp /usr/include/openssl /usr/include/openssl_bak
cp -r /etc/ssh /etc/ssh_bak
rm -rf /usr/bin/openssl
rm -rf /usr/include/openssl
cp -r "${localpath}"/conf/ssh/ssl /usr/local
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig
openssl version
cp -rf "${localpath}"/conf/ssh/ssh* /usr/bin/
cp -rf "${localpath}"/conf/ssh/ssh* /usr/local/bin/
cp -rf "${localpath}"/conf/ssh/ssh* /usr/sbin/
# 测试ssh配置
# /usr/sbin/sshd -t -f /etc/ssh/sshd_config
systemctl stop ssh.service
rm /lib/systemd/system/ssh.service
systemctl daemon-reload
# 源码包的contrib目录 /opt/openssh-8.1p1/contrib/redhat/sshd.init
cp -r "${localpath}"/conf/ssh/service/sshd.init /etc/init.d/
mkdir /var/empty
systemctl enable ssh.service
systemctl restart ssh.service
fi
}
用到的文件
链接: https://pan.baidu.com/s/1iYkLuadI9ugBegJeWqONsQ?pwd=sonp 提取码: sonp
–来自百度网盘超级会员v5的分享