Как обновить ssh centos

Обновлено: 07.07.2024

В репозиториях Centos находится довольно древняя версия OpenSSH, и никто не торопится ее обновлять. Может быть в этом и нет суровой необходимости, но почему бы и нет, раз сам OpenSSH развивается и обновляется? Тем более, что граждане жалуются на то, что со старым ssh система не проходит аудит безопасности. Итак, ставим!

Итак, начать надо с бэкапа системы. Верю, что Вы всегда так делаете, но мало ли! Помимо этого непосредственно перед установкой я настоятельно рекомендую отдельно сохранить в рабочий каталог два файла:

Поэтому не закрывайте ssh-консоль, с которой вы производите все манипуляции и не перегружайте сервер до того момента, как убедитесь что новая версия sshd работает нормально, не войдете на сервер другой консолью обычным образом и не получите обычным же образом консоль root! Несмотря на любые рестарты sshd текущая сессия сохраняется, и если что-то пошло не так, то новую вы установить не сможете и начнутся танцы с бубном.

Все команды далее выполняются из под root или через sudo.

Итак, нам надо подключить репозиторий, копируем файл с его метаданными:

Теперь мой репозиторий подключен к Вашей системе. И обновляем пакеты:

yum upgrade openssh*

Подводные камни

Конфигурация sshd

Давайте считать, что конфигурацию мы сделали как надо, но радоваться рано.

Права на ключи

chmod -v 0600 /etc/ssh/ssh_host_*_key

Она либо исправит ситуацию, либо просто ничего не сделает, а результат будет понятен из ее отчета.

localhost sshd[4503]: Authentication refused: bad ownership or modes for file /home/%user%/.ssh/authorized_keys

При этом совершенно не важно может ли sshd прочитать ключ. Лечится это понятным способом: владельцем /.ssh/authorized_keys должен быть именно тот пользователь чей это домашний каталог, а права на него должны быть не больше 0644. Есть подозрения, что это и раньше проверялось, и не новость в этой версии, но и это надо иметь ввиду, я столкнулся с этим в ходе своих экспериментов.

Сложности с PAM

PAM вообще для меня механизм сложный, загадочный, ну так я и не позиционирую себя как крутого специалиста. Полагаю, что если Вы включаете в sshd использование PAM, то Вы точно знаете, что делаете.

Могу лишь сообщить, что при установке пакет удаляет /etc/pam.d/sshd и записывает на его место новый, со следующим содержимым:

localhost sshd[2111]: PAM adding faulty module: /usr/lib64/security/pam_stack.so
localhost sshd[2115]: PAM unable to dlopen(/usr/lib64/security/pam_stack.so): /usr/lib64/security/pam_stack.so: cannot open shared object file: No such file or directory

Гугл знает все, и решение нашлось, оно очень простое. Везде, где в /etc/pam.d/sshd было:
required pam_stack.so service=system-auth
должно быть:
include system-auth

И все начинает работать! Для полной ясности, /etc/pam.d/sshd должен выглядеть так:

Пользователи без пароля

localhost sshd[2073]: User %user% not allowed because account is locked

C этим тоже удалось разобраться. Оказалось, что при создании пользователя командой useradd без пароля в /etc/shadow создаются вот такого вида строки, например для пользователя test:

Лечится эта проблема одним из трех способов:

А вот и финиш!

Enjoy!

yum downgrade openssh*

И не забудьте в случае отката удалить ссылку на мой репозиторий, иначе при следующем обновлении системы последняя версия ssh опять установится сама:


содержание 1, основная функция MPI 2, точка-точка функция связи 3, коллективная функция связи 1, основная функция MPI MPI_Init(&argc, &argv) Информировать системы MPI для выполнения всех необх.

Примечание 9: EL выражение


JVM память

концепция Виртуальная машина JVM управляет собственной памятью, которая разделяет память во многие блоки, наиболее распространенной для памяти стека и памяти кучи. 1 структура виртуальной машины JVM H.

Проблема сетевого запроса на Android 9.0

вЗапустите Android 9 (API Уровень 28) или вышеНа устройстве операционной системы Android, чтобы обеспечить безопасность пользовательских данных и устройств, использование по умолчанию для зашифрованно.


Учебная запись по Webpack (3) В статье рассказывается о создании webpack4.0.

предисловие Для изучения веб-пакета автор также предпринял много обходных путей. Есть много вещей, которые я хочу знать, но я не могу их найти. Автор поможет вам быстро начать работу. Цель этой статьи.

Вам также может понравиться

Сетевой HDU - 3078 мультивикация LCA

The ALPC company is now working on his own network system, which is connecting all N ALPC department. To economize on spending, the backbone network has only one router for each department, and N-1 op.

Деревянная палочка Luogu P1120 [Data Enhanced Version] Поиск

Метафизический разрез, просто просмотрите поиск Я чувствую, что процедура поиска состоит в том, чтобы сначала набрать общую структуру, а затем шаг за шагом оптимизировать процесс сокращения. 1. Длина .

Используйте Maven для запуска модульных тестов

Используйте Maven для запуска модульных тестов Чтобы запустить модульные тесты через Maven, введите эту команду: Это запустит весь модульный тест в вашем проекте. Тематическое исследование Создайте дв.


Данная инструкция протестирована на CentOS 6, 7 и 8.

Посмотреть текущую версию

Узнать текущую версию openssl в Linux можно следующей командой:

Мы увидим что-то на подобие:

OpenSSL 1.0.2k-fips 26 Jan 2017

* в данном примере используется версия openssl 1.0.2k от 26 января 2017 года.

Из пакетов

Самый простой способ — воспользоваться репозиторием. Однако, в нем может находиться далеко не последняя версия.

yum install openssl

* также можно ввести yum update openssl.

Если будет найдено обновление, система предложит обновить пакет — отвечаем Y.

Если обновлений нет или будет установлена не последняя версия, выполняем установку из исходника.

Из исходника

Устанавливаем пакеты, необходимые для сборки пакета:

yum install make gcc

LTS версия OpenSSL

* как видим, на момент написания обновления инструкции это была версия 1.1.1.

И копируем ссылку на ее скачивание:

Ссылка за загрузки LTS OpenSSL

На CentOS скачиваем исходник с использованием найденной ссылки:

И распаковываем его с последующим удалением:

tar -xvf openssl-*.tar.gz && \rm openssl-*.tar.gz

Переходим в папку с распакованным исходником:

./config --prefix=/usr/local --openssldir=/usr/local

Резервируем предыдущую версию openssl:

mv /usr/bin/openssl /root/openssl.back

И делаем ссылку на новую:

ln -s /usr/local/bin/openssl /usr/bin/openssl

Снова проверяем версию:

openssl version -a

Система вернет либо ошибку, например:

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

. либо полные сведения об openssl, например:

OpenSSL 1.1.1g 21 Apr 2020 (Library: OpenSSL 1.0.2k-fips 26 Jan 2017)
built on: Sat May 11 01:54:53 2019 UTC
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wa,--noexecstack -Wa,--generate-missing-build-notes=yes -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG -DPURIFY -DDEVRANDOM="\"/dev/urandom\"" -DSYSTEM_CIPHERS_FILE="/etc/crypto-policies/back-ends/openssl.config"
OPENSSLDIR: "/etc/pki/tls"
ENGINESDIR: "/usr/lib64/engines-1.1"
Seeding source: os-specific

Обратите внимание, что у нас установлена новая версия OpenSSL, но по прежнему, используется старая библиотека — Library: OpenSSL 1.0.2k-fips 26 Jan 2017.

Необходимо добавить в ldconfig новый путь. Для это создаем файл:

* если у нас используется система 32-бит, то путь будет /usr/local/lib.

Читайте также: