libcrypto.so.1.0.0: brak dostępnych informacji o wersji (wymagane przez ssh)

11

Otrzymuję następujący błąd:

jalal@klein:~$ ssh -i "hyunwoo_key.pem" [email protected]
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)

Uruchomiłem te dwa polecenia:

sudo apt-get update
sudo apt-get upgrade

Po uruchomieniu powyższego polecenia nadal pojawia się ten sam błąd. Co powinienem zrobić? Daj mi znać, jeśli konieczne są dodatkowe informacje dotyczące tego błędu.

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)

Odinstalowałem openssl i zainstalowałem go ponownie, wciąż ten sam błąd:

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

Mam również następujące dla wersji 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)
Mona Jalal
źródło

Odpowiedzi:

11

Czy skądś zainstalowałeś wersję OpenSSL inną niż Ubuntu?

Wersja OpenSSL Ubuntu ma zainstalowane dodatkowe łatki, które nie są dołączone, jeśli otrzymasz wersję OpenSSL z innego miejsca. W szczególności symbole eksportowane przez bibliotekę mają powiązane informacje o wersji w Ubuntu OpenSSL, ale nie w standardowym OpenSSL (przynajmniej w wersjach wcześniejszych niż 1.1.0). Otrzymujesz ostrzeżenie „brak dostępnych informacji o wersji”, jeśli uruchamiasz aplikację dostarczoną z Ubuntu, która oczekuje, że biblioteka będzie miała symbole wersjonowane, ale wersja biblioteki, którą faktycznie odbierasz, jest wersją inną niż Ubuntu, która nie ma tych symboli wersjonowanych . Będzie działać (zwykle), ale będzie narzekać.

Drugi znak problemu to:

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

Oznacza to, że aplikacja wiersza polecenia OpenSSL to 1.0.2g, ale łączy się z biblioteką 1.0.1k. Może to powodować awarie - zwykle aplikacja wiersza poleceń i biblioteka powinny używać zgodnych wersji.

OpenSSL 1.0.2g 1 Mar 2016Bitowa wersja Ubuntu to co standardowy OpenSSL zgłosi. Ta część OpenSSL 1.0.1k 8 Jan 2015pochodzi z wersji OpenSSL innej niż Ubuntu.

Aby rozwiązać problem, musisz dowiedzieć się, gdzie znajduje się OpenSSL inny niż Ubuntu i usunąć go ze ścieżki biblioteki.

Spróbuj tego:

ldd /usr/bin/openssl

Dla mnie to raportuje:

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)

Zwróć szczególną uwagę na lokalizację libssl i libcrypto. To miejsce powinno znajdować się w miejscu, w którym znajduje się biblioteka inna niż Ubuntu.

Matt Caswell
źródło
1
Dzięki wielkie! Miałem /usr/local/bin/libssli /usr/local/bin/libcrypto. Właśnie je usunąłem. Teraz działa idealnie.
Abdulsattar Mohammed
8

Spróbuj tego:

Usunąć to rm /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0

lub zmień jego nazwę, jeśli nie masz pewności mv /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0 /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0_bk

Pankaj Joshi
źródło
4
To działało dla mnie, używam anaconda3i zapewnia wiele z tych wspólnych bibliotek, co prowadzi do problemów. Czy możesz wyjaśnić może trochę, czy i dlaczego możesz je po prostu usunąć? Czy ma jakieś wady (wydaje się trochę brudnym rozwiązaniem)?
Gijs,
2
Nie znam odpowiedzi, ale dla mnie, chociaż naprawił mój pierwotny problem, złamał także anakondę (nie był w stanie wyszukać swoich pakietów itp.). Musiałem odtworzyć dowiązanie symboliczne, aby go naprawić.
Ben Farmer
Ta odpowiedź naprawiła pierwotny problem, ale spowodowała kolejny błąd związany z .git-remote-https.bin: błąd wyszukiwania symboli: libssl.so.1.0.0: niezdefiniowany symbol. W rezultacie odwróciłem tę akcję.
maia
2

uruchom to polecenie, aby sprawdzić ścieżkę echo $LD_LIBRARY_PATH.

Po zainstalowaniu anakondy ta ścieżka zostanie dołączona /home/<username>/anaconda3/lib. Usuń go i dołącz ścieżki bibliotek systemowych /usr/local/lib:/usr/lib. Najprawdopodobniej można go znaleźć eksportowane przez otwór vim ~/bashrclub vim ~/bash_profilePowinno to podnieść odpowiednie wersje podczas korzystania wgetlub curlnawet za ssh.

Koo
źródło
2

Miałem bardzo podobny problem, kiedy kompilowałem wersję OpenSSL 1.0 jako warunek wstępny projektu kompilacji starej wersji PHP na Ubuntu 18.04 LTS, która wydaje się być dostarczana tylko z pakietami dla OpenSSL 1.1.

Wierzę, że tak się stało, ponieważ ponieważ stara wersja 1.0 OpenSSL nie była dostępna jako pakiet dla 18.04 LTS, musiałem ją pobrać i skompilować sam, zanim mogłem połączyć się z nią w procesie kompilacji PHP i uważam, że OpenSSL 1.0 utworzono kompilację /usr/local/lib/libcrypto.so.1.0.0 .

Z jakiegoś powodu główny plik wykonywalny wbudowanego serwera SSH Ubuntu / usr / sbin / sshd rozpoczął łączenie z /usr/local/lib/libcrypto.so.1.0.0 zamiast domyślnego systemu / usr / lib / x86_64-linux -gnu / libcrypto.so.1.0.0 . Podejrzewam, że systemowy plik binarny SSHD mógł zostać skompilowany w taki sposób, że najpierw szuka libcrypto.so.1.0.0 w katalogu / usr / local / lib i tylko domyślną lokalizację systemu, jeśli go tam nie ma

Rozwiązaniem dla mnie było po prostu usunięcie lub usunięcie /usr/local/lib/libcrypto.so.1.0.0 po zakończeniu procesu kompilacji PHP. Po zakończeniu kompilacji PHP te pliki i tak nie były już potrzebne. Zrobiłem to, zrestartowałem komputer i nadal mogłem łączyć się przez SSH, więc nie zakładam, że wyrządzę Ci krzywdę.

Powinieneś być w stanie przetestować, czy to rozwiązanie będzie dla Ciebie działać w następujący sposób:

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

Jeśli pierwsza komenda LDD zwróci:

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

a drugie polecenie LDD zwraca:

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

Powinieneś być w porządku, ponieważ oznacza to, że automatycznie wykrywa on drugi plik po pozbyciu się pierwszego.

RedScourge
źródło
Miałem tę samą sytuację (kompilowanie wersji PHP z różnymi wersjami OpenSSL). Ze mną gitzgłoszony /usr/bin/ssh: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh). (re) przeniesienie pliku wymienionego przez wyjście git naprawiono rzeczy 👍
Potherca
0

Uruchom to, aby uzyskać informacje o wersji - 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
źródło
0

Wiem, że od dawna powstało to pytanie, jednak na tej stronie znalazłem rozwiązanie tego problemu . Rozwiązanie zadziałało dla mnie i może również dla ciebie. Wykonałem następujące polecenia: Dla 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

W przypadku 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

Nie wiem dokładnie, co jest przyczyną błędu, ale myślę, że jest to związane z istnieniem wielu plików biblioteki o tej samej nazwie, w twoim przypadku znaleziono wiele plików biblioteki o nazwie libcrypto.so.1.0.0i nazwie libssl.so.1.0.0.

Matheus Diógenes Andrade
źródło
0

Podobne do odpowiedzi z @ matt-caswell, ale bardziej specyficzne dla mojego wydania nginx:

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

ROZWIĄZANIE:

  1. Biegnę ldd /usr/bin/openssl, a potem mam:

    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. Te dwa pliki są nieprawidłowe do uruchomienia nginx. Więc usuń je w następujący sposób:

    /usr/local/openssl/lib/libssl.so.1.0.0
    /usr/local/openssl/lib/libcrypto.so.1.0.0
    
  3. Uruchom ponownie komputer, uruchom ldd /usr/bin/opensslponownie, otrzymałeś:

    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)
    

ROZWIĄZANY!

Xiaorui Zhu
źródło