Всем привет!
Не так давно, возникла задача в обновление openssl на CentOS. Информации о репозиториях, откуда можно обновиться до последней стабильной версии, я не нашел и решил сделать все вручную. Но вот одна загвоздка, после успешного обновления я чуть не потерял удаленный доступ к серверу — ssh перестал работать. Данный материал, посвящен тем, кто планирует обновиться в ручную, как я.
И так. Смотрим текущую версию openssl и видим:
[root@server ~]# openssl version
OpenSSL 1.0.0-fips 29 Mar 2010
Этот OpenSSL входит в состав стандартного репозитория CentOS 6.
[root@server ~]# uname -r
2.6.32-279.1.1.el6.x86_64
Ну, поехали обновляться. Для этого идем на официальный сайт www.openssl.org и скачиваем свежую версию openssl-1.0.1c.tar.gz.
Распаковываем дистрибутив.
[root@server ~]# tar -xvzf openssl-1.0.0c.tar.gz
Переходим в директорию.
[root@server ~]# cd openssl-1.0.0c
И приступаем к сборке. Одно замечание, ставил openssl я в стандартную директорию по умолчанию, что и привело к падению ssh, которое я опишу ниже. Я вам советую, не повторять мой подвиг и ставиться, например, в /usr/local/ssl, после чего с помощью ldconfig — дать знать о существовании новой сборки OpenSSL. Но увы, в тот момент, я не подумал об этом и собрал OpenSSL следующим образом.
[root@server ~]# ./config --prefix=/usr --openssldir=/usr/ssl
[root@server ~]# make
[root@server ~]# make test
[root@server ~]# make install
[root@server ~]#
[root@server ~]# ./config shared --prefix=/usr --openssldir=/usr/ssl
[root@server ~]# make clean
[root@server ~]# make
[root@server ~]# make install
Вуаля, мы обновились… Проверяем.
[root@server ~]# openssl version
OpenSSL 1.0.1c 10 May 2012
А вот теперь самое интересное. Пробуем, сделать ssh на наш сервер.
[sub@t4u ~]# ssh t4u@server
ssh_exchange_identification: Connection closed by remote host
На любой ключ, ssh начнет ругаться «OpenSSL version mismatch.» Не отчаиваемся, и скачиваем последнюю стабильную версию OpenSSH, для того, чтобы обновиться уже с новым OpenSSL. Дистрибутив, можно скачать с официального сайта openbsd.org.
Скачиваем, распаковываем и ставим:
[root@server ~]# ./configure --prefix=/usr --with-ssl-dir=/usr/ssl
[root@server ~]# make
[root@server ~]# make install
Перезапускаем sshd.
[root@server ~]# /etc/init.d/sshd restart
Собственно все. Можно жить дальше.
Всем удачи!
Автор: t4u
привет. вчера обновил openssl для того, чтоб сделать ЦП для запрета сайтов )))
но я ставил её в отдельную директорию в корне /gost-ssl
а сегодня на утро
ssh_exchange_identification: Connection closed by remote host
как такое могло произойти…
ведь директория другая…
сам дурак, разобрался. сделал изменения для gost в основном старом конфиге openssl оказывается и забыл удалить их