0

I am working on an embedded board, to access that board I need ssh to work smoothly. Currently, for debugging purpose I am using serial connection to access the board.

Now, when I try to start openssh it throws following error:

/usr/sbin/sshd: /lib/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /usr/sbin/sshd)

I have the correct libcrypt.so.1 which provides 'XCRYPT_2.0' in /usr/lib/libcrypt.so.1

So this is what I did :
rm /lib/libcrypt.so.1

ln -s /usr/lib/libcrypt.so.1 /lib/libcrypt.so.1

I can get the ssh to work. However, I figured out that I need deleted /lib/libcrypt.so.1 - if this shared object is not present then I believe pam_unix.so / some other shared objects are giving me problem. Because I could not login to the board, even serially (for the next reboot).

I don't even see the 'login' prompt.

My question is, is there a way with which I can provide shared object path to sshd dynamically something like?

/etc/init.d/sshd < dynamically provide shared object path > start

or

/usr/sbin/sshd < dynamically provide shared object path > start

More info about the system:

Using openssh 7.8/7.8p1 version

Using Yocto Thud (2.6) to get the root file system.

Running Linux 4.14

0

You can set the directories to search for shared libraries by using the LD_LIBRARY_PATH enviroment variable.

Copy your libcrypt.so.1 to e.g. /etc/ssh/libs/ (create the directory first of course), and start sshd thusly:

env LD_LIBRARY_PATH=/etc/ssh/libs /usr/sbin/sshd

Ad the first path to the invocation, whatever parameters are passed to sshd still need to be passed.

0

I had the same problem and it's due to a change in Yocto version previous version was installing libcrypto.so.1 as part of glibc now it's a package called libcrypto-....rpm so when you remove the /lib/libcrypto* you force ssh to reuse the one under /usr/lib

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.