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?

У версії Ubuntu OpenSSL встановлено кілька додаткових патчів, які не включені, якщо ви отримуєте свою версію 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,2 г, але він посилається на бібліотеку 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: не визначений символ. Таким чином, я закінчив цю дію.
— maia

2

запустіть цю команду, щоб перевірити шлях echo $LD_LIBRARY_PATH.

При встановленні анаконди цей шлях додається /home/<username>/anaconda3/lib. Видаліть його і додайте до системної бібліотеки контури /usr/local/lib:/usr/lib. Швидше за все , ви можете знайти його на експорт при відкритті vim ~/bashrcабо vim ~/bash_profileце має підібрати правильні варіанти при використанні wgetабо curlнавіть для ssh.


2

У мене була дуже схожа проблема, коли я збирав версію 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 .

Чомусь головний виконуваний сервер Ubuntu вбудованого SSH / 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)

Тоді вам слід добре, бо це означає, що він автоматично виявив інший файл після того, як ви позбулися першого.


У мене була така ж ситуація (компілювання PHP-версії з різними версіями OpenSSL). Зі мною gitповідомили /usr/bin/ssh: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh). (пере) переміщення файлу, згаданого виведенням git виправлених речей 👍
— 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

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)
    

РЕШЕНО!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.