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)

Answers:


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。我刚刚删除了它们。现在,它可以完美运行。
Abdulsattar Mohammed

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
我不知道答案,但是对我来说,虽然它解决了我原来的问题,但它也损坏了蟒蛇(它无法搜索其软件包等)。我不得不重新创建符号链接来修复它。
Ben Farmer

此答案解决了原始问题,但引起了另一个涉及.git-remote-https.bin的错误:符号查找错误:libssl.so.1.0.0:未定义符号。因此,我最终扭转了这一行动。
maia

2

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

当您安装anaconda时,此路径会附加/home/<username>/anaconda3/lib。删除它并附加系统库路径/usr/local/lib:/usr/lib。最有可能的,你可以找到它导出通过打开vim ~/bashrcvim ~/bash_profile这应该使用时拿起正确的版本wget或者curl甚至为ssh


1

当我编译OpenSSL 1.0版本作为在Ubuntu 18.04 LTS上编译旧版本PHP的项目的前提条件时,我遇到了一个非常相似的问题,该项目似乎仅随附于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二进制文件的编译方式可能是它首先在/ usr / local / lib中查找libcrypto.so.1.0.0,并且仅在未找到系统默认位置的情况下才查找

对我来说,解决方案是在PHP编译过程完成后,简单地删除或删除/usr/local/lib/libcrypto.so.1.0.0。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)

那您应该没事,因为这意味着它会在您删除第一个文件后自动检测到另一个文件。


我有同样的情况(用不同的OpenSSL版本编译PHP版本)。有我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)
    

解决了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.