升级背景:
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
至此,完成。