libcrypto.so.1.0.0: информация о версии недоступна (требуется ssh)

11

Я получаю следующую ошибку:

jalal@klein:~$ ssh -i "hyunwoo_key.pem" ubuntu@ec2-52-23-201-2.compute-1.amazonaws.com
ssh: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by ssh)
ssh: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by ssh)
OpenSSL version mismatch. Built against 1000207f, you have 100010bf

jalal@klein:~$ openssl version
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libssl.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libssl.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libssl.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
WARNING: can't open config file: /_This_is_not_a_valid_path_/_setenv_OPENSSL_CONF_instead_/openssl.cnf
OpenSSL 1.0.2g  1 Mar 2016 (Library: OpenSSL 1.0.1k 8 Jan 2015)

Я запустил эти две команды:

sudo apt-get update
sudo apt-get upgrade

Когда я запускаю вышеупомянутую команду, я все еще получаю ту же ошибку. Что я должен делать? Пожалуйста, дайте мне знать, если для этой ошибки необходима дополнительная информация.

jalal@klein:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial

jalal@klein:~$ uname -a
Linux klein 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

jalal@klein:~$ ssh -V
ssh: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by ssh)
ssh: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by ssh)
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.1k 8 Jan 2015

jalal@klein:~$ locate libcrypto.so.1.0.0
/home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
/usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0
/usr/local/MATLAB/R2016a/bin/glnxa64/libcrypto.so.1.0.0
/usr/local/MATLAB/R2016a/toolbox/compiler_sdk/mps_clients/c/glnxa64/lib/libcrypto.so.1.0.0

jalal@klein:~$ ldd /usr/bin/ssh
/usr/bin/ssh: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh)
/usr/bin/ssh: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh)
    linux-vdso.so.1 =>  (0x00007ffc0a3cb000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f070fcaf000)
    libcrypto.so.1.0.0 => /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0 (0x00007f070f8cb000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f070f6c7000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f070f4ad000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f070f291000)
    libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f070f047000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f070ec7e000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f070ea0d000)
    /lib64/ld-linux-x86-64.so.2 (0x0000556886875000)
    libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f070e73b000)
    libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f070e50c000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f070e307000)
    libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f070e0fc000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f070dedf000)
    libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f070dcda000)

Я удалил openssl и установил его снова, все та же ошибка:

2065  sudo apt-get purge --auto-remove openssl
2066  sudo apt-get install openssl

Также у меня есть следующее для openssl версии:

jalal@klein:~$ openssl version
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libssl.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libssl.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libssl.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
openssl: /home/jalal/computer_vision/MCR/v901/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by openssl)
WARNING: can't open config file: /_This_is_not_a_valid_path_/_setenv_OPENSSL_CONF_instead_/openssl.cnf
OpenSSL 1.0.2g  1 Mar 2016 (Library: OpenSSL 1.0.1k 8 Jan 2015)
Мона Джалал
источник

Ответы:

11

Вы установили не-Ubuntu версию OpenSSL откуда-то?

В версии OpenSSL для Ubuntu есть несколько дополнительных исправлений, которые не включаются, если вы получаете версию OpenSSL из других источников. В частности, символы, экспортируемые библиотекой, имеют информацию о версии, связанную с ними в Ubuntu OpenSSL, но не стандартную OpenSSL (по крайней мере, в версиях до 1.1.0). Вы получаете предупреждение «информация о версии недоступна», если вы запускаете приложение, поставляемое в Ubuntu, которое ожидает, что библиотека будет иметь версионные символы, но версия библиотеки, которую вы на самом деле выбираете, является версией не-Ubuntu, в которой эти версионные символы отсутствуют , Это будет работать (обычно), но будет жаловаться на это.

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

OpenSSL 1.0.2g  1 Mar 2016 (Library: OpenSSL 1.0.1k 8 Jan 2015)

Это говорит о том, что приложение командной строки OpenSSL - 1.0.2g, но оно связывается с библиотекой 1.0.1k. Это может вызвать сбои - обычно приложение командной строки и библиотека должны использовать совпадающие версии.

OpenSSL 1.0.2g 1 Mar 2016Бит версии, что будет сообщать о стандартной Ubuntu OpenSSL. Это OpenSSL 1.0.1k 8 Jan 2015происходит из не-Ubuntu версии OpenSSL.

Чтобы решить вашу проблему, вам нужно выяснить, где находится не Ubuntu OpenSSL, и удалить его из пути к вашей библиотеке.

Попробуй это:

ldd /usr/bin/openssl

Для меня это сообщает:

linux-vdso.so.1 =>  (0x00007fff911a1000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fbf2c6e1000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fbf2c29d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbf2bed3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbf2bccf000)
/lib64/ld-linux-x86-64.so.2 (0x0000555f5c585000)

Обратите особое внимание на расположение libssl и libcrypto. Это место должно быть там, где находится не-Ubuntu библиотека.

Мэтт Касвелл
источник
1
Спасибо! Я имел /usr/local/bin/libsslи /usr/local/bin/libcrypto. Я просто удалил их. Теперь работает отлично.
Абдулсаттар Мухаммед
8

Попробуй это:

Убери это rm /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0

или переименуйте его, если вы не уверены mv /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0 /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0_bk

Панкадж Джоши
источник
4
Это работает для меня, я использую anaconda3, и предоставляет много этих общих библиотек, что приводит к проблемам. Можете ли вы объяснить немного, если и почему вы можете просто удалить их? Есть ли у него какие-либо возможные недостатки (похоже на грязное решение)?
Gijs
2
Я не знаю ответа, но для меня, в то время как это решило мою первоначальную проблему, оно также сломало анаконду (стало невозможно искать ее пакеты и т.д.). Мне пришлось воссоздать символическую ссылку, чтобы исправить это.
Бен Фармер
Этот ответ исправил исходную проблему, но вызвал еще одну ошибку, связанную с .git-remote-https.bin: ошибка поиска символа: libssl.so.1.0.0: неопределенный символ. Таким образом, я закончил тем, что полностью изменил это действие.
Май
2

Запустите эту команду, чтобы проверить путь echo $LD_LIBRARY_PATH.

Когда вы устанавливаете anaconda, к этому пути добавляется /home/<username>/anaconda3/lib. Удалите его и добавьте пути к системной библиотеке /usr/local/lib:/usr/lib. Скорее всего , вы можете найти его на экспорт при открытии vim ~/bashrcили vim ~/bash_profileэто должно подобрать правильные варианты при использовании wgetили curlдаже для ssh.

Koo
источник
1

У меня была очень похожая проблема, когда я компилировал версию OpenSSL 1.0 в качестве предварительного условия проекта для компиляции старой версии PHP на Ubuntu 18.04 LTS, которая поставляется только с пакетами для OpenSSL 1.1.

Я полагаю, что произошло то, что из-за того, что старая версия OpenSSL 1.0 не была доступна в виде пакета для 18.04 LTS, мне пришлось загрузить и скомпилировать ее самостоятельно, прежде чем я смогу ссылаться на нее для процесса компиляции PHP, и я считаю, что OpenSSL 1.0 скомпилировать созданный /usr/local/lib/libcrypto.so.1.0.0 .

По какой-то причине основной исполняемый файл встроенного SSH-сервера Ubuntu / usr / sbin / sshd начал связываться с /usr/local/lib/libcrypto.so.1.0.0 вместо системного значения по умолчанию / usr / lib / x86_64-linux -gnu / libcrypto.so.1.0.0 . Я подозреваю, что бинарный файл SSHD системы, возможно, был скомпилирован таким образом, что сначала он ищет libcrypto.so.1.0.0 в / usr / local / lib и только смотрит на местоположение системы по умолчанию, если там не найден

Решением для меня было просто удалить или удалить /usr/local/lib/libcrypto.so.1.0.0 после завершения процесса компиляции PHP. После завершения компиляции PHP эти файлы больше не нужны. Я так и сделал, перезагрузился и все еще смог подключиться через SSH, поэтому я не причинил вреда.

Вы сможете проверить, будет ли это решение работать для вас следующим образом:

ldd /usr/sbin/sshd | grep libcrypto
mkdir ~/usrlocallib
mv /usr/local/lib/libcrypto.so.1.0.0 ~/usrlocallib
ldd /usr/sbin/sshd | grep libcrypto

Если первая команда LDD возвращает:

 libcrypto.so.1.0.0 => /usr/local/lib/libcrypto.so.1.0.0 (0x00007fdc9529d000)

и вторая команда LDD возвращает:

 libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007eff801b4000)

Тогда у вас должно быть все в порядке, потому что это означает, что он автоматически обнаружил другой файл после того, как вы избавились от первого.

RedScourge
источник
У меня была такая же ситуация (компилирование версии PHP с разными версиями OpenSSL). Со мной gitсообщили /usr/bin/ssh: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh). (пере) перемещение файла, упомянутого в git output, исправление ошибок P
Potherca
0

Запустите это, чтобы получить информацию о версии - strings libssl.so.1.0.0 | grep "1\.0"

SSLv3 part of OpenSSL 1.0.2p-fips  14 Aug 2018
OpenSSL 1.0.2p-fips  14 Aug 2018
TLSv1 part of OpenSSL 1.0.2p-fips  14 Aug 2018
DTLSv1 part of OpenSSL 1.0.2p-fips  14 Aug 2018
yarick
источник
0

Я знаю, что долгое время этот вопрос создавался, однако я нашел решение этой проблемы на этой веб-странице . Решение сработало для меня, и может работать и для вас. Я выполнил следующие команды: Для libssl.so.1.0.0:

  • sudo rm /usr/local/ssl/lib/libssl.so.1.0.0
  • sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 usr/local/ssl/lib/libssl.so.1.0.0

Для libcrypto.so.1.0.0:

  • sudo rm /usr/local/ssl/lib/libcrypto.so.1.0.0
  • sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/local/ssl/lib/libcrypto.so.1.0.0

Я не знаю точно, что является причиной ошибки, но я предполагаю, что это связано с существованием нескольких библиотечных файлов с одним и тем же именем, в вашем случае найдено несколько библиотечных файлов с именем libcrypto.so.1.0.0и с именем libssl.so.1.0.0.

Матеус Диоген Андраде
источник
0

Аналогично ответу от @ matt-caswell, но более конкретно к моей проблеме nginx:

/usr/local/openssl/lib/libcrypto.so.1.0.0: no version information available (required by /usr/sbin/nginx)

РЕШЕНИЕ:

  1. Я бегу ldd /usr/bin/openssl, затем получил:

    libssl.so.1.0.0 => /usr/local/openssl/lib/libssl.so.1.0.0 (0x00007f1eb7e91000)
    libcrypto.so.1.0.0 => /usr/local/openssl/lib/libcrypto.so.1.0.0 (0x00007f1eb7a36000)
    
  2. Эти два файла не подходят для запуска nginx. Поэтому удалите их следующим образом:

    /usr/local/openssl/lib/libssl.so.1.0.0
    /usr/local/openssl/lib/libcrypto.so.1.0.0
    
  3. Перезагрузите машину, запустите ldd /usr/bin/opensslснова, получите:

    libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f40f5ee4000)
    libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f40f5a9f000)
    

РЕШИТЬ!

Сяоруй Чжу
источник