我收到以下错误:
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
选择正确的版本。wget
curl
ssh
答案4
与@matt-caswell的回答类似,但更具体地针对我的 nginx 问题:
/usr/local/openssl/lib/libcrypto.so.1.0.0: no version information available (required by /usr/sbin/nginx)
解决方案:
我运行
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)
这两个文件对于 nginx 的运行来说是错误的。因此,请按如下方式删除它们:
/usr/local/openssl/lib/libssl.so.1.0.0 /usr/local/openssl/lib/libcrypto.so.1.0.0
重启机器,
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)
解决了!