近期碰巧在做项目等保测评的安全漏洞修复,其中比较让人头疼的就是升级SSH,也是遇到了之前没有接触过的系统Ubuntu 22.04.4(LTS),经过自己的折腾测试也算是碰巧给成功升级了,特此也顺便将之前的方法做个总结,和大家分享。
本人不是技术大佬,比较小白,纯粹是希望通过自己的经验分享能够帮助他人解决问题。
首先介绍一下需要进行SSH升级服务器的网络环境,主要有两种:
第一种内网环境,可以简单的理解为你不可以上网,通过yum install,或者 apt install 下载不了东西的,当然这也可能与服务器配置的镜像源有关系,在此贴中,因为的方法中涵盖了apt install的方法,故将其定位判断的依据。
第二种可以访问外网的环境,大致可以理解为,可以用上述的 yum install 或者 apt install的。
PS(补充):写到第三种方法的时候突然想到这个补充,需要外网环境的升级方法,是不能在内网环境进行的,但是在内网环境或者离线环境可以进行的方法是可以在外网环境进行的。
即就是离线。内网环境可以进行的方法,就不管你是不是外网了,只要你将安装包可以上传到服务器上,基本上可以完成升级。
那么介绍完网络环境之后,接下来就给大家阐述一下三种系统升级SSH的方法:
安装包及升级脚本的链接我统一放在文末
第一种 CentOS 7.x (离线环境/内网环境):
第一步,在所需要升级SSH的服务器的home目录下,创建一个sshup的目录;
第二步,需要将下载连接中文件夹名为“CentOS7 .x” 中的 “openssl-1.1.1w.tar.gz” “openssh-9.9p1.tar.gz” “zlib-1.3.1.tar.gz”三个包上传到/home/sshup/目录下;
第三步,将文件夹中名为“ssh_up.sh”的升级脚本放到/home目录下并执行,当然这里可能需要你对脚本文件赋予执行权限;
执行权限命令如下:
chmod +x ssh_up.sh
至此即可完成升级。
当然对于此方法不放心的同学,可以先在虚拟机中安装一个相同系统版本的镜像进行尝试,再进行上述操作。这点比较重要,我每次测试之前都会自己先进行尝试!!!
第二种 openEuler 22.03 (LTS-SP4) (离线环境/内网环境):
此法与上述第一种大致相同。
第一步,在所需要升级SSH的服务器的home目录下,创建一个sshup的目录;
第二步,需要将下载连接中文件夹名为“openEuler 22.03 (LTS-SP4)” 中的 “openssl-1.1.1w.tar.gz” “openssh-9.9p1.tar.gz” “zlib-1.3.1.tar.gz”三个包上传到/home/sshup/目录下;
第三步,将文件夹中名为“ssh_up.sh”的升级脚本放到/home目录下并执行,当然这里可能需要你对脚本文件赋予执行权限;
执行权限命令如下:
chmod +x ssh_up.sh
至此即可完成升级。
当然对于此方法不放心的同学,可以先在虚拟机中安装一个相同系统版本的镜像进行尝试,再进行上述操作。这点比较重要,我每次测试之前都会自己先进行尝试!!!
第三种 Ubuntu 22.04.4(LTS)(在线环境/需要外网环境):
此种方法与上述两种不太一样,需要可以使用 apt install的下载命令。
第一步,先升级相关依赖包
apt update
apt install build-essential libssl-dev zlib1g-dev
apt-get install libpam0g-dev
第二步,备份ssh相关文件(以备升级失败了,不能使用root进行远程登录,可以直接还原回去)
cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup
cp /etc/ssh/moduli /etc/ssh/moduli_backup
第三步,需要将下载连接中文件夹名为“Ubuntu 22.04.4(LTS)” 中的“openssh-9.9p2.tar.gz”包上传到服务器/home目录下;
第四步,进行解压,并编译安装:
tar -zxvf openssh-9.9p2.tar.gz
cd openssh-9.9p2
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam
make
make install
第五步,修改配置:
vim /etc/ssh/sshd_config在末尾添加PermitRootLogin yesX11Forwarding yesPasswordAuthentication yes
第六步,重启ssh服务 (这时可能就有人好奇为啥这一步有个重启ssh服务,因为之前重启的过程已经在脚本里写了)
sudo systemctl restart sshd
最后可以使用ssh -V命令验证是否完成SSH的升级。
这里再着重强调一次:
当然对于此方法不放心的同学,可以先在虚拟机中安装一个相同系统版本的镜像进行尝试,再进行上述操作。这点比较重要,我每次测试之前都会自己先进行尝试!!!
因为我觉得自己验证方法的可行性真的很重要!!!
-文末-
安装包下载链接:https://pan.baidu.com/s/1LHnNaDlNteD_6KmBoUbBVg?pwd=nbmf 提取码: nbmf

