由于ssh有漏洞需要升级,但是为了最小化升级不影响ssl,因为ssl里面带了加密库,系统中很多核心服务的加密都是用ssl进行加密的(像网络服务,系统用户登录等),如果ssl升级出现不兼容,就可能出现系统启动不起来,或者无法进入登录进入系统。所以如果现有的ssl版本支持新升级的ssh版本,那么就可以仅升级ssh,不需要升级ssl。
查看现在的系统版本:cat /etc/redhat-release
查看现在的SSH版本:ssh -V
打开openssh.com网页,点击“For other systems” 下面的Releases:
打开安装介绍,查看说明:
查看这里的说明,OpenSSL需要1.1.1或以上的版本,我们这里的版本是1.1.1g,按说明当前我们系统的OpenSSL的版本是兼容的,所以就可以不进行OpenSSL的升级。
下载ssh:
这里使用阿里云的镜像:
下载当前时间最新的版本:
地址是:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz
可以下载下来上传到Linux系统,如果Linux系统有网也可以直接下载:
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz
解压:tar xf openssh-9.5p1.tar.gz
进入到解压后的目录里面:cd openssh-9.5p1
进行编译前配置:./configure
如果提示上面这个错误,说明系统没有gcc编译器,需要安装:yum install gcc gcc-c++
yum install gcc gcc-c++
安装完成后,再进行配置:./configure
如果出现上面这个缺少zlib包,这个包是用来压缩的,这里就直接跳过,不压缩,重新执行配置命令,并不带有zlib:./configure --without-zlib
./configure --without-zlib
这里出现找不到“libcrypto”,但之前我们通过ssh -V查看了有openSSL,这个包是openSSL带有的,说明是有这个包的,但为什么找不到呢,这里是因为缺少这个包的头文件,编译的时候通不过,这里安装一下:yum install openssl-devel
yum install openssl-devel
安装完成后再进行执行配置:./configure --without-zlib
./configure --without-zlib
配置完成不出错后,然后进行:make
make
如果找不到make命令,像下图这样就需要安装一下make:
安装make: yum install make,安装完成后再重新执行make
yum install make
make完成之后进行安装:make install
make install
检查安装后的ssh是否正确:
ll /usr/local/bin/ssh
/usr/local/bin/ssh -V
检后后是新版本,那么则移除老版本,用新版本进行替换:
rm -rf /usr/bin/ssh
cp /usr/local/bin/ssh /usr/bin
再检查版本是否为新版本:
ssh -V
sshd -V
重启sshd服务,使其生效:systemctl restart sshd
systemctl restart sshd