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

7,490

Solution 1

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

Solution 2

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.

Share:
7,490

Related videos on Youtube

HarshaD
Author by

HarshaD

Updated on September 18, 2022

Comments

  • HarshaD
    HarshaD over 1 year

    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

    • alireza
      alireza over 4 years
      same problem in debian testing exist...