В версиях OpenSSH до 9.6 существует уязвимость безопасности, вызванная уязвимостью внедрения команд операционной системы.
Номер уязвимости: CVE-2023-51385.
opencloudos9.2
Другие версии Centos также применимы. Обновление сопряжено с определенными рисками, и вы не совсем уверены. Обязательно войдите в консоль Tencent Cloud, чтобы выполнить резервное копирование моментального снимка перед обновлением.
1. Проверьте текущую версию openssh и каталоги, связанные с openssh.
ssh -V
whereis ssh
2. Резервное копирование файлов ssh и связанных каталогов.
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/
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.
rpm -qa | grep openssh
rpm -e --nodeps `rpm -qa | grep openssh` #Эта команда принудительно удалит пакет rpm, связанный с openssh, найденный Воля.
rpm -qa | grep openssh
5. Установка и компиляция должны зависеть от среды.
yum groupinstall "Development Tools"
yum install -y openssl-devel zlib-devel pam-devel
6. Скомпилируйте и установите
./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. Скопируйте новый файл конфигурации в исходный каталог и добавьте разрешения.
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. Измените значения этих трех параметров PermitRootLogin, PubkeyAuthentication и PasswordAuthentication в /etc/ssh/sshd_config на yes.
PermitRootLogin yes #Разрешить пользователю root войти в систему через SSH
PubkeyAuthentication yes #Включить аутентификацию с открытым ключом
PasswordAuthentication yes #Включить аутентификацию по паролю
9. Запустите sshd автоматически после загрузки и начните проверку.
systemctl enable sshd
systemctl restart sshd
sshd -V
На этом всё готово.