libcrypto.so.1.0.0: nenhuma informação de versão disponível (requerida pelo ssh)

11

Eu obtenho o seguinte erro:

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)

Eu executei esses dois comandos:

sudo apt-get update
sudo apt-get upgrade

Quando executo o comando acima, ainda recebo o mesmo erro. O que devo fazer? Por favor, deixe-me saber se são necessárias informações adicionais para este bug.

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)

Eu desinstalei o openssl e o instalei novamente, ainda o mesmo erro:

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

Também tenho o seguinte para a versão 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
fonte

Respostas:

11

Você instalou uma versão não-Ubuntu do OpenSSL de algum lugar?

A versão Ubuntu do OpenSSL possui alguns patches adicionais instalados que não estão incluídos se você obtiver sua versão do OpenSSL de outro lugar. Especificamente, os símbolos exportados pela biblioteca têm informações de versão associadas a eles no Ubuntu OpenSSL, mas não o OpenSSL padrão (pelo menos nas versões anteriores à 1.1.0). Você recebe o aviso "nenhuma informação de versão disponível" se executar um aplicativo fornecido pelo Ubuntu que espera que a biblioteca tenha símbolos com versão, mas a versão da biblioteca que você escolhe é uma versão não-Ubuntu que não possui esses símbolos com versão . Funcionará (geralmente), mas irá reclamar.

O outro sinal de problema é este:

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

Isso informa que o aplicativo de linha de comando OpenSSL é 1.0.2g, mas está vinculado à biblioteca 1.0.1k. É provável que isso cause falhas - normalmente o aplicativo de linha de comando e a biblioteca devem usar versões correspondentes.

A OpenSSL 1.0.2g 1 Mar 2016parte da versão é o que o Ubuntu OpenSSL padrão relatará. A parte OpenSSL 1.0.1k 8 Jan 2015vem de uma versão não-Ubuntu do OpenSSL.

Para resolver seu problema, você precisa descobrir onde está o OpenSSL não-Ubuntu e removê-lo do caminho da biblioteca.

Tente o seguinte:

ldd /usr/bin/openssl

Para mim, isso relata:

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)

Preste atenção especial à localização do libssl e libcrypto. Esse local deve ser onde está sua biblioteca que não é Ubuntu.

Matt Caswell
fonte
1
Muito obrigado! Eu tinha /usr/local/bin/libssle /usr/local/bin/libcrypto. Acabei de removê-los. Funciona perfeitamente agora.
Abdulsattar Mohammed
8

Tente o seguinte:

Remova rm /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0

ou renomeie-o, caso você não tenha certeza 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
fonte
4
Isso funcionou para mim, estou usando anaconda3, e fornece muitas dessas bibliotecas compartilhadas, o que leva a problemas. Você pode explicar um pouco se e por que você pode simplesmente excluí-los? Tem alguma desvantagem possível (parece um pouco com uma solução suja)?
Gijs
2
Não sei a resposta, mas para mim, enquanto corrigia o meu problema original, também quebrava a anaconda (ficou incapaz de procurar seus pacotes, etc.). Eu tive que recriar o link simbólico para corrigi-lo.
Ben fazendeiro
Esta resposta corrigiu o problema original, mas causou outro erro envolvendo .git-remote-https.bin: erro de pesquisa de símbolo: libssl.so.1.0.0: símbolo indefinido. Assim, acabei revertendo essa ação.
Maia
2

execute este comando para verificar o caminho echo $LD_LIBRARY_PATH.

Quando você instala o anaconda, esse caminho é anexado /home/<username>/anaconda3/lib. Remova-o e anexe os caminhos da biblioteca do sistema /usr/local/lib:/usr/lib. Provavelmente, você pode encontrá-lo exportado abrindo vim ~/bashrcou vim ~/bash_profileIsso deve pegar as versões corretas ao usar wgetou curlou mesmo para ssh.

Koo
fonte
1

Eu tive um problema muito semelhante ao compilar uma versão do OpenSSL 1.0 como pré-requisito de um projeto para compilar uma versão antiga do PHP no Ubuntu 18.04 LTS, que parece vir apenas com pacotes para o OpenSSL 1.1.

Acredito que o que aconteceu é que, como a versão 1.0 antiga do OpenSSL não estava disponível como um pacote para o 18.04 LTS, tive que fazer o download e compilá-la antes de poder vinculá-la ao processo de compilação PHP, e acredito que o OpenSSL 1.0 compile criado /usr/local/lib/libcrypto.so.1.0.0 .

Por alguma razão, o executável principal do servidor SSH do Ubuntu / usr / sbin / sshd começou a vincular-se ao /usr/local/lib/libcrypto.so.1.0.0 em vez do padrão do sistema / usr / lib / x86_64-linux -gnu / libcrypto.so.1.0.0 . Suspeito que o binário SSHD do sistema possa ter sido compilado de forma que procure primeiro libcrypto.so.1.0.0 no diretório / usr / local / lib primeiro e apenas procure o local padrão do sistema se não for encontrado lá

A solução para mim foi simplesmente excluir ou remover /usr/local/lib/libcrypto.so.1.0.0 após a conclusão do processo de compilação do PHP. Depois que a compilação do PHP foi concluída, esses arquivos não eram mais necessários. Fiz isso e reinicializei e ainda consegui conectar via SSH; portanto, não assumo nenhum dano.

Você deve poder testar se esta solução funcionará para você da seguinte maneira:

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

Se o primeiro comando LDD retornar:

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

e o segundo comando LDD retorna:

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

Então você deve ficar bem, porque significa que ele detectou automaticamente o outro arquivo depois que você se livrou do primeiro.

RedScourge
fonte
Eu tive a mesma situação (compilando a versão PHP com diferentes versões do OpenSSL). Comigo gitrelatado /usr/bin/ssh: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh). (re) mover o arquivo mencionado pelas coisas saída git fixos 👍
Potherca
0

Execute isso para obter informações da versão - 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
fonte
0

Sei que há muito tempo que essa pergunta foi criada, no entanto, encontrei uma solução para esse problema nesta página da web . A solução funcionou para mim e pode funcionar para você também. Eu executei os seguintes comandos: Para o 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

Para o 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

Não sei exatamente qual é o motivo do erro, mas acho que está relacionado à existência de vários arquivos de biblioteca com o mesmo nome; no seu caso, vários arquivos de biblioteca com o nome libcrypto.so.1.0.0e com o nome libssl.so.1.0.0são encontrados.

Matheus Diógenes Andrade
fonte
0

Semelhante à resposta de @ matt-caswell, mas mais específico ao meu problema do nginx:

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

SOLUÇÃO:

  1. Eu corro ldd /usr/bin/openssl, então tenho:

    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. Esses dois arquivos estão errados para a execução do nginx. Portanto, remova-os da seguinte maneira:

    /usr/local/openssl/lib/libssl.so.1.0.0
    /usr/local/openssl/lib/libcrypto.so.1.0.0
    
  3. Reinicie a máquina, execute ldd /usr/bin/opensslnovamente e obtenha:

    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)
    

RESOLVIDO!

Xiaorui Zhu
fonte