基于Ubuntu 18.04.5 LTS环境进行升级
root@testubunt:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
一、安装配置telnet工具
1、安装telnet工具(以防服务器升级失败,连接不到服务器)
# apt install telnetd xinetd -y
2、编写telnet配置文件(最小化安装默认没有,直接复制粘贴即可)
root@testubunt:~# cat /etc/xinetd.d/telnet
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
root@testubunt:~# systemctl restart xinetd.service
root@testubunt:~# netstat -anput | grep 23
tcp6 0 0 :::23 :::* LISTEN 8684/xinetd
3、服务器测试登入telnet
# telnet IP地址 端口号
二、升级前准备
1、备份数据
# 1、备份配置文件
root@testubunt:~# mv /etc/ssh{,.bak}
#2、备份命令文件
root@testubunt:~# mkdir /usr/bin/ssh.bin.bak
root@testubunt:~# cd /usr/bin/
root@testubunt:/usr/bin# mv ssh* sftp scp ssh.bin.bak/
root@testubunt:/usr/bin# cd ../sbin/
root@testubunt:/usr/sbin# mkdir ssh.sbin.bak
root@testubunt:/usr/sbin# cd ssh.sbin.bak/
root@testubunt:/usr/sbin/ssh.sbin.bak# mv ../sshd .
2、安装依赖包
# apt install libzip-dev libssl-dev autoconf gcc libxml2 make -y
3、获取openssl、openssh源码包
cd /usr/local/src/
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz --no-check-certificate
三、编译安装openssl
//升级openssh8.0以上版本依赖openssl1.1 所以先编译安装openssl
cd /usr/local/src/
tar zxf openssl-1.1.1.tar.gz
cd openssl-1.1.1/
./config --prefix=/usr/local --openssldir=/usr/local/openssl
make && make install
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
//验证openssl 版本
root@ubuntu:~# openssl version
OpenSSL 1.1.1 11 Sep 2018
报错: openssl: relocation error: openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time referenc
解决方法:在/etc/ld.so.conf.d/libc.conf 文件中添加一行/usr/lib,运行ldconfig命令。
root@ubuntu:~# cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib
/usr/lib
root@ubuntu:~# ldconfig
四、编译安装openssh
systemctl stop sshd
cd /usr/local/src/
tar zxf openssh-8.6p1.tar.gz
cd 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
make && make install
# prefix 安装目录
# sysconfdir 配置文件目录
# with-md5-passwords 支持读取经过md5加密口令
# with-zlib 指定zlib库安装路径
# with-privsep-path 指定非特权用户的chroot目录
替换命令
cd /usr/bin/
mv ssh* sftp scp c_rehash openssl /tmp/
ln -s /usr/local/bin/* /usr/bin/
//测试安装无误
root@ubuntu:~# systemctl start sshd
此时先不着急退出终端,再开一个终端看是否可以连接上,连接上即升级成功!
五、卸载telnet工具
mv /etc/xinetd.d/telnet{,.bak}
apt-get remove telnet -y
systemctl restart xinetd.service
netstat -anput |grep 23