Ubuntu20.04版本升级openssh9.8p1方法

一、问题描述:

8.5p1 和 9.7p1 之间的openssh版本漏洞可能会导致linux系统以root身份进行RCE,所以需安装最新版本

二、解决方法:

将当前openssh版本升级到最新的版本即openssh-9.8p1版本,OpenSSL大版本升级且OpenSSH有新稳定版本,建议升级OpenSSL同时也升级OpenSSH

1.安装编译依赖包

复制代码
apt install gcc make zlib1g-dev libpam0g-dev libkrb5-dev libedit-dev -y

2.先升级openssl,再升级openssh

ubuntu20.04 默认openssl版本:OpenSSL 1.1.1f

ssh的版本为:OpenSSH_8.2p1

3.下载OpenSSL

访问openssl官网:[ Downloads ] - /source/index.htmlhttps://www.openssl.org/source/找到最新版本通过wget下载

复制代码
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz

注意:由于OpenSSL 1.1.x版本已停止维护,ubuntu20.04.x系统建议都使用目前长期支持版

复制代码
cd /usr/local/src/
tar -zxf openssl-3.0.13.tar.gz
cd openssl-3.0.13
./config shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

进行编译和安装

复制代码
make&&make install

运行一段时间等编译安装完成,完成后执行echo $?显示是否执行成功。

备份原来的openssl

复制代码
mv /usr/bin/openssl  /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl

将openssl 的lib 库添加到系统('/usr/local/openssl/lib64' 单引号)

复制代码
#openssl 1.x.x版本是: /usr/local/openssl/lib/ 路径
#echo '/usr/local/openssl/lib' > /etc/ld.so.conf.d/openssl.conf
echo '/usr/local/openssl/lib64' > /etc/ld.so.conf.d/openssl.conf 

然后加载lib库

复制代码
ldconfig -v

查看OpenSSL版本

4.下载OpenSSH包

访问链接:Index of /pub/OpenBSD/OpenSSH/portable/https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/通过wget下载OpenSSH_9.8p1

复制代码
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

备份文件

复制代码
mkdir /usr/bin/bak
cp -arpf /usr/bin/scp /usr/bin/bak/scp.bak
cp -arpf /usr/bin/sftp /usr/bin/bak/sftp.bak
cp -arpf /usr/bin/ssh /usr/bin/bak/ssh.bak
cp -arpf /usr/bin/ssh-add /usr/bin/bak/ssh-add.bak
cp -arpf /usr/bin/ssh-agent /usr/bin/bak/ssh-agent.bak
cp -arpf /usr/bin/ssh-keygen /usr/bin/bak/ssh-keygen.bak
cp -arpf /usr/bin/ssh-keyscan /usr/bin/bak/ssh-keyscan.bak
mkdir /usr/sbin/bak
cp -arpf /usr/sbin/sshd /usr/sbin/bak/sshd.bak

进入openssh-9.8p1目录,执行编译安装命令

复制代码
tar -zxf openssh-9.8p1.tar.gz
cd  /usr/local/src/openssh-9.8p1.tar.gz
./configure --prefix=/usr/local/openssh-9.8p1 --sysconfdir=/etc/ssh --with-kerberos5 --with-libedit --with-pam --with-gssapi --with-zlib --with-ssl-dir=/usr/local/openssl --with-privsep-path=/var/lib/sshd
make && make install

make install运行完后执行echo $? 显示如下即是安装成功

替换新版本openssh相关命令

复制代码
cp -arpf /usr/local/openssh-9.8p1/bin/* /usr/bin/
cp -arpf /usr/local/openssh-9.8p1/sbin/*   /usr/sbin/

修改配置文件

复制代码
sed -i 's@#PermitRootLogin prohibit-password@PermitRootLogin yes@g' /etc/ssh/sshd_config

允许root远程登录,并重启ssh

复制代码
systemctl daemon-reload
systemctl restart ssh
ssh -V  查看版本

注:遇到如下编译问题

解决方法:

安装依赖包

复制代码
apt install gcc make zlib1g-dev libpam0g-dev libkrb5-dev libedit-dev -y
相关推荐
GIS数据转换器几秒前
2025无人机在农业生态中的应用实践
大数据·网络·人工智能·安全·无人机
---学无止境---27 分钟前
Linux中dcache和inode缓存回收函数的实现
linux
Мартин.30 分钟前
[Meachines] [Hard] Pollution MyBB+Redis_session+PHP-Filter+PHP-FPM+prototype
linux
总有刁民想爱朕ha32 分钟前
银河麒麟v10 Mysql8部署教程(小白版)
linux·mysql数据库备份
weixin_307779131 小时前
AWS云上Quickwit部署指南与成本分析
服务器·自动化·云计算·运维开发·aws
cozil1 小时前
记录磊科B39路由器跨域组网遇到的问题
网络·智能路由器·跨域组网
LCG元1 小时前
性能排查必看!当Linux服务器CPU/内存飙高,如何快速定位并"干掉"罪魁祸首进程?
linux·后端
路由侠内网穿透1 小时前
本地部署开源数据分析平台 Elastic Stack 并实现外部访问( Windows 版本)
运维·服务器·网络·windows·开源·jenkins
回忆是昨天里的海1 小时前
k8s安装-kubeadm join,将工作节点加入k8s集群
java·服务器·kubernetes
FreeBuf_2 小时前
AWS服务大规模中断,基础设施故障影响全球企业
网络·数据库·aws