Ubuntu离线升级openssh8.6脚本

本文档详细介绍了如何在Ubuntu 18.04.4 LTS上手动升级Openssh到8.6p1版本,包括依赖包安装、源码编译、配置备份和替换等关键步骤。同时,提到了升级过程中可能遇到的问题,如权限限制和依赖解决,并提供了相应的解决方案。
摘要由CSDN通过智能技术生成

基于Ubuntu 18.04.4 LTS版本升级安装

root@qinziteng:~/ubuntu.install# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.4 LTS
Release:	18.04
Codename:	bionic

升级前建议先装telnet 多留一条救命稻草,很有企业禁止使用telnet服务,可以先安装上确定openssh升级无误之后可以在卸载啊!
安装telnet参考文档:https://blog.csdn.net/weixin_45310323/article/details/120123661

获取离线升级包 提取码:6666
脚本如下:

注意:脚本中路径定义的是/home/qinziteng 复用脚本时需要更改一下路径位置,可以使用:%s/qinziteng/xxxxx/g 来批量修改。

root@qinziteng:~/ubuntu.install# cat install.2.0.sh 
#!/bin/bash

## 数据备份

clear

beifen(){
mv /etc/ssh/sshd_config{,.old}
cp /usr/sbin/sshd{,.old}
mv /etc/ssh{,.old}
cp /etc/init.d/ssh{,.old}

mkdir /opt/ssh.bak
cd /usr/bin/
mv ssh* sftp scp /opt/ssh.bak/
}

## 编译前准备

# 1、安装依赖包

yilai(){
echo "[安装依赖包]"
cd /home/qinziteng/ubuntu.install/dpkgs_package/
dpkg -i * &>/dev/null

	if [ $? -eq 0 ];then
		echo "[成功]"
	else
		echo "[失败]"
	fi
}
# 2、解压源码包
targz(){
echo "[解压源码包]"
cd /home/qinziteng/ubuntu.install/source_package/

for i in openssh-8.6p1.tar.gz  openssl-1.1.1.tar.gz
do
	tar zxf $i -C /usr/local/src/
done

sleep 1
}

## 编译安装openssl
ssl_t1(){
echo "[编译安装openssl]"
sleep 0.5
echo "[编译安装时间较长 耐心等待...]"

cd /usr/local/src/openssl-1.1.1/
./config --prefix=/usr/local --openssldir=/usr/local/openssl &>/dev/null
make  &>/dev/null
make install &>/dev/null

if [ $? -eq 0 ];then
	echo "[成功]"
else
	echo "[失败]"
	exit
fi

ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1 
#ssl=`openssl version`
#echo $ssl
#sleep 3
sed  -i  '1 a /usr/local' /etc/ld.so.conf.d/libc.conf
ldconfig
}
 

## 编译安装openssh
ssh_t1(){
echo "[编译安装openssh]"
systemctl stop sshd 
cd /usr/local/src/openssh-8.6p1/
./configure --prefix=/usr/local --sysconfdir=/etc/ssh \
	--with-md5-passwords --with-zlib --with-ssl-dir=/usr/local \
	--with-privsep-path=/var/lib/sshd &>/dev/null
make &>/dev/null
make install &>/dev/null

if [ $? -eq 0 ];then
	echo "[成功]"
else
	echo "[失败]"
	exit
fi
}

## 命令替换
ti(){
cd /usr/bin/
mv ssh* sftp scp c_rehash openssl /tmp/ &>/dev/null
ln -s /usr/local/bin/* /usr/bin/ &>/dev/null
}

#####
beifen
yilai
targz
ssl_t1
ssh_t1
ti

systemctl start sshd

遇到问题总结

1、获取依赖deb包
我获取依赖包的方式:是通过一台能上外网的最小化安装的Ubuntu系统,上进行下载deb包,之后保存起来,在内网机子上进行安装。

那上面安装openssh需要的依赖打比方吧

apt install libzip-dev libssl-dev autoconf gcc libxml2 make telnetd xinetd -y -d 

后面的 -d 选项是只保存包 不进行安装,和yum的–downloadonly选项类似。

默认下载的好得包都存放在 /home/qinziteng/ubuntu.install/dpkgs_package 目录中!
在这里插入图片描述由于是最小化安装 需要解决好多依赖 所以安装的deb包自然就较多了。

创建一个目录,将这些deb包复制到目录中,之后上传到内网机子上,使用dpkg 命令进行安装

dpkg -i *
//如果所要安装的依赖包,和依赖包的依赖包都存放在同一个目录 dpkg 会自动解决依赖问题!
//如果缺少目录中缺少一个依赖包,能上外网也可以自动解决依赖问题,可在内网就不太行了!

2、遇到报错bash: ulimit: open files: cannot modify limit: Operation not permitted
解决方案参考:
ttps://blog.csdn.net/qq_40907977/article/details/106076934

3、允许用户远程登入
一般升级之后不会出现这个问题 ,但以防万一 我还是写出来吧。
在这里插入图片描述

PermitRootLogin yes   //允许root账户远程连接,这个Ubuntu默认就不允许,开还是不开,看环境而定
UseLogin yes         //允许用户远程连接

更改配置文件后别忘记重启sshd服务。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的海马体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值