I am getting no version information available
when making ssh
.
Openssl verion:
sat:~# openssl version
OpenSSL 1.0.1f 6 Jan 2014
Here is output of ldd /usr/bin/ssh
:
/usr/bin/ssh: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh)
linux-vdso.so.1 => (0x00007fff48bff000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fdd57f1f000)
libcrypto.so.1.0.0 => /usr/local/lib/libcrypto.so.1.0.0 (0x00007fdd57b3a000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdd57935000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdd5771e000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fdd57508000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fdd572c8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdd56f3e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdd583b3000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fdd56c6a000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fdd56a40000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fdd5683c000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fdd56633000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fdd5642e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdd56212000)
Output of locate libcrypto.so.1.0.0
:
sat:~# locate libcrypto.so.1.0.0
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
/usr/local/lib/libcrypto.so.1.0.0
/usr/src/openssl-1.0.1f/libcrypto.so.1.0.0
How to fix this error?
Note:
I compiled and installed the openssl
. After that, I installed ssh
through apt-get
.
Best Answer
These are probably two different versions of OpenSSL. You will probably be OK since 1.0.0 is binary compatible with 1.0.1, 1.0.2, etc (it won't be binary compatible with 1.1.0, however).
Your
ssh
is probably using the version of OpenSSL in/usr/lib/x86_64-linux-gnu/
. You should useLD_PRELOAD
to ensure your version of OpenSSL is being used (assuming binary compatibility, of course).If you don't want to use
LD_PRELOAD
and friends, then buildssh
from sources. Be sure to specify anrpath
to ensure the link editor uses your version of OpenSSL, not he system's version. That is, yourLDFLAGS
should include something like-Wl,-rpath,<path to your openssl>
. That's in addition to the customary-lcrypto
,-lssl
and-L<path to your openssl>
.If you are on Mac OS X, then be advised that linker options like
-Bstatic
and-rpath
are silently ignored. You will encounter mysterious crashes due to incompatible binaries because OS X provide 0.9.8.As for no version information, I have no idea.
ssh
can use eitherOPENSSL_VERSION_NUMBER
at compile time orSSLeay
/SSLeay_version
at runtime. SeeOPENSSL_VERSION_NUMBER(3)
for details.Perhaps I'm misreading things, but I don't see an error anywhere in the post.