【Linux】opencloudos系统 OpenSSH升级到 OpenSSH_9.8P1

2024-08-19 10:14:40 浏览数 (1)

升级背景:

OpenSSH 9.6之前版本存在安全漏洞,该漏洞源于存在操作系统命令注入漏洞。

漏洞编号:CVE-2023-51385

本次升级系统环境:

opencloudos9.2

其他版本的centos也适用,升级存在一定的风险,没有十足的把握,请务必登录腾讯云控制台进行快照备份后再升级。

操作步骤:

1. 查看当前openssh版本以及openssh相关目录

代码语言:bash复制
ssh -V
whereis ssh

2. 备份ssh文件及相关目录

代码语言:bash复制
mv /etc/ssh /etc/ssh.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /etc/pam.d/sshd /etc/pam.d/sshd.bak

3. 下载openssh源码包并解压进入源码包。

这里记录下openssh下载地址:下载地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

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

4. 查询并卸载原来的openssh包

代码语言:bash复制
rpm -qa | grep openssh 
rpm -e --nodeps `rpm -qa | grep openssh`   #此命令会将找到的openssh相关的rpm包强制删除。
rpm -qa | grep openssh  

5. 安装编译需要依赖环境

代码语言:bash复制
yum groupinstall "Development Tools"
yum install -y openssl-devel zlib-devel pam-devel

6. 编译安装

代码语言:bash复制
./configure --prefix=/usr/local/openssh9p6 --sysconfdir=/etc/ssh --with-pam --with-zlib
#如出现类似这类错误,说明系统当前的openssl版本较低,需要更高版本的openssl
#error: OpenSSL >= 1.1.1 required (have "100004df (OpenSSL 1.0.2k-fips 26 Jan 2017)")
#由于本次操作环境是opencloudos9.2环境,该环境自带的openssl版本是OpenSSL 3.0.12,已满足对openssh9.8的支持,所以不在升级opensslp
make
make install

7. 复制新的配置文件到原目录并添加权限

代码语言:bash复制
cp /usr/local/openssh9p6/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh9p6/bin/ssh /usr/bin/ssh
cp /usr/local/openssh9p6/bin/ssh-keygen /usr/bin/ssh-keygen
cp -p contrib/redhat/sshd.init /etc/init.d/sshd 
chmod  x /etc/init.d/sshd

8. 将 /etc/ssh/sshd_config中 ,这三个参数 PermitRootLogin 、PubkeyAuthentication、PasswordAuthentication值改为yes.

代码语言:bash复制
PermitRootLogin yes  #允许root用户通过SSH登录到系统
PubkeyAuthentication yes   #启用公钥身份验证
PasswordAuthentication yes  #启用密码身份验证

9. 开机自启sshd并启动验证。

代码语言:txt复制
systemctl enable sshd
systemctl restart sshd
sshd -V

至此,完成。

0 人点赞