libcrypto.so.1.0.0:没有可用的版本信息(ssh 所需)

libcrypto.so.1.0.0:没有可用的版本信息(ssh 所需)

我收到以下错误:

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)

我运行了这两个命令:

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)

答案1

您是否从某处安装了非 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.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 库所在的位置。

答案2

尝试这个:

去掉它 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

答案3

运行此命令来检查路径echo $LD_LIBRARY_PATH

当您安装 anaconda 时,此路径会附加/home/<username>/anaconda3/lib。将其删除并附加系统库路径/usr/local/lib:/usr/lib。您很可能可以通过打开vim ~/bashrc或找到它。这应该会在使用或甚至 时vim ~/bash_profile选择正确的版本。wgetcurlssh

答案4

与@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)
    

解决了!

相关内容