免责声明:
本文档所提供的升级OpenSSH版本升级仅用于技术交流和学习;升级操作过程中出现系统异常或网络安全问题以及其他相关问题,本文档编辑者不承担相应责任和不提供相应的服务义务。
一:系统环境信息和前期文件准备
1:系统/服务器版本信息
>>Ubuntu 16.04.7 LTS
2:OpenSSH版本信息
>>OpenSSH_7.2p2
3:相关包准备
>>3个包文件
>>3个包获取网址:
- openssh-9.6p1.tar.gz:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
- openssl-1.1.1w.tar.gz:
https://www.openssl.org/source/openssl-1.1.1w.tar.gz
- zlib.tar.gz:
https://zlib.net/current/zlib.tar.gz
>>要是上面上个网址下不动的话,可以直接在下面网盘里取
- 网盘地址:
openssh升级包文件官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
4:将3个包文件上传到系统/服务器上的“/root”目录下
二:apt更新和依赖安装(此过程需要系统/服务器联网)
1:apt更新(执行命令后需要和截图演示结果一致即可)
>>sudo apt update
2:依赖安装(执行命令后需要和截图演示结果一致即可)
>>sudo apt install -y build-essential zlib1g-dev libssl-dev autoconf gcc g++ make libpam0g-dev libselinux1-dev
三:解压Openssh包并升级OpenSSL和Zlib
1:解压openssh-9.6p1.tar.gz包
>>cd /root
>>tar -zxvf openssh-9.6p1.tar.gz
2:将openssl1.1.1w包移动到上一步解压好的openssh-9.6p1路径下并解压(必须这么干)
>>mv ../openssl-1.1.1w.tar.gz ./
>>tar -zxvf openssl-1.1.1w.tar.gz
3:进入openssl-1.1.1w路径下并进行升级编译安装(依次输入以下命令即可)
>>cd openssl-1.1.1w
>>./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
>> make -j$(nproc) && sudo make install
>>echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
>>sudo ldconfig
4:将zlib包移动到当前路径并解压(必须这么干)
>>mv ../../zlib.tar.gz ./
>>tar -zxvf zlib.tar.gz
5:进入解压好的zlib-1.3.1路径下并进行升级(按照下面命令操作即可)
>>cd zlib-1.3.1
>>./configure --prefix=/usr/local/zlib
>>make -j$(nproc) && sudo make install
四:编译安装OpenSSH9.6p1
1:回到openssh9.6p1路径下并进行配置编译参数
>>cd ../../
>>./configure \
--prefix=/usr/local/openssh \
--sysconfdir=/etc/ssh \
--with-ssl-dir=/usr/local/openssl \
--with-zlib=/usr/local/zlib \
--with-md5-passwords \
--with-pam \
--with-selinux \
--with-privsep-path=/var/lib/sshd
2:编译与安装
>>make -j$(nproc)
>>sudo make install
五:系统集成与配置(必须进行)
1:替换旧版本文件
>>sudo mv /usr/bin/ssh /usr/bin/ssh.old
>>sudo mv /usr/sbin/sshd /usr/sbin/sshd.old
2:创建符号链接
>>sudo ln -sf /usr/local/openssh/bin/* /usr/bin/
>>sudo ln -sf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
3:配置更新与服务重启
>>sudo systemctl daemon-reload
>>sudo systemctl restart sshd
六:重连系统/服务器并验证
1:重启sshd后可能断开ssh连接,若断开等个几分钟再重新连接即可;
>>ssh -V
七:回滚方面(紧急恢复)
#恢复旧版本
>>sudo rm -rf /usr/local/openssh
>>sudo mv /usr/bin/ssh.old /usr/bin/ssh
>>sudo mv /usr/sbin/sshd.old /usr/sbin/sshd
>>sudo systemctl restart sshd