libcrypto.so.1.0.0: no version information available (required by ssh)

66,718

Solution 1

Have you installed a non-Ubuntu version of OpenSSL from somewhere?

The Ubuntu version of OpenSSL has some additional patches installed that are not included if you get your version of OpenSSL from elsewhere. Specifically, symbols exported by the library have version information associated with them in Ubuntu OpenSSL but not standard OpenSSL (at least in versions prior to 1.1.0). You get the "no version information available" warning if you run an Ubuntu supplied application that is expecting the library to have versioned symbols, but the library version you actually pick-up is a non-Ubuntu version that doesn't have those versioned symbols. It will work (usually), but it will complain about it.

The other problem sign is this:

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

This tells you that the OpenSSL command line app is 1.0.2g, but it is linking against the 1.0.1k library. This is likely to cause crashes - normally the command line app and the library should use matched versions.

The OpenSSL 1.0.2g 1 Mar 2016 bit of the version is what standard Ubuntu OpenSSL will report. The OpenSSL 1.0.1k 8 Jan 2015 bit is coming from some non-Ubuntu version of OpenSSL.

To resolve your problem you need to figure out where the non-Ubuntu OpenSSL is and remove it from your library path.

Try this:

ldd /usr/bin/openssl

For me that reports:

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)

Pay particular attention to the location of libssl and libcrypto. That location should be where your non-Ubuntu library is.

Solution 2

Try this:

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

or rename it, in case you are not sure mv /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0 /usr/local/MATLAB/R2015a/bin/glnxa64/libcrypto.so.1.0.0_bk

Solution 3

I had a very similar issue when I was compiling a version of OpenSSL 1.0 as a prerequisite of a project to compile an old version of PHP on Ubuntu 18.04 LTS, which appears to only come with packages for OpenSSL 1.1.

I believe what happened is that because the old 1.0 version of OpenSSL was not available as a package for 18.04 LTS, I had to download and compile it myself before I could link against it for the PHP compilation process, and I believe that the OpenSSL 1.0 compile created /usr/local/lib/libcrypto.so.1.0.0.

For some reason, the Ubuntu built-in SSH server main executable /usr/sbin/sshd started linking against /usr/local/lib/libcrypto.so.1.0.0 instead of the system default of /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0. I suspect that the system SSHD binary may have been compiled in such a way that it first looks for libcrypto.so.1.0.0 in the /usr/local/lib first and only looks at the system default location if not found there

The solution for me was to simply delete or remove /usr/local/lib/libcrypto.so.1.0.0 after the PHP compile process was complete. After the PHP compile was complete, these files were no longer needed anyway. I did so and rebooted and was still able to connect via SSH so I assume no harm done.

You should be able to test if this solution will work for you as follows:

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

If the first LDD command returns:

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

and the second LDD command returns:

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

Then you should be fine, because it means it automatically detected the other file after you got rid of the first.

Solution 4

run this command to check the path echo $LD_LIBRARY_PATH.

When you install anaconda this path get appended with /home/<username>/anaconda3/lib. Remove it and append the system library paths /usr/local/lib:/usr/lib. Most likely you can find it exported by opening vim ~/bashrc or vim ~/bash_profileThis should pick up the right versions when using wget or curl or even for ssh.

Share:
66,718

Related videos on Youtube

Mona Jalal
Author by

Mona Jalal

contact me at [email protected] I am a 5th-year computer science Ph.D. Candidate at Boston University advised by Professor Vijaya Kolachalama in computer vision as the area of study. Currently, I am working on my proposal exam and thesis on the use of efficient computer vision and deep learning for cancer detection in H&amp;E stained digital pathology images.

Updated on September 18, 2022

Comments

  • Mona Jalal
    Mona Jalal over 1 year

    I get the following error:

    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)
    

    I ran these two commands:

    sudo apt-get update
    sudo apt-get upgrade
    

    When I run the above command I still get the same error. What should I do? Please let me know if extra information is necessary for this 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)
    

    I uninstalled openssl and installed it again, still the same error:

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

    Also I have the following for openssl version:

    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)
    
  • Abdulsattar Mohammed
    Abdulsattar Mohammed about 7 years
    Thanks so much! I had /usr/local/bin/libssl and /usr/local/bin/libcrypto. I just removed them. It works perfectly now.
  • Gijs
    Gijs about 7 years
    This worked for me, I am using anaconda3, and it provides a lot of these shared libraries, which leads to problems. Can you explain maybe a bit if and why you can just delete these? Does it have any possible downsides (feels a bit like a dirty solution)?
  • Ben Farmer
    Ben Farmer about 6 years
    I don't know the answer, but for me, while it fixed my original problem, it also broke anaconda (it became unable to search for its packages etc). I had to recreate the symlink to fix it.
  • maia
    maia almost 6 years
    This answer fixed the original problem, but caused another error involving .git-remote-https.bin: symbol lookup error: libssl.so.1.0.0: undefined symbol. Thus, I ended up reversing this action.
  • Potherca
    Potherca over 4 years
    I had the same situation (compiling PHP version with different OpenSSL versions). With me git reported /usr/bin/ssh: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh). (re)moving the file mentioned by the git output fixed things 👍