6 February,17 at 03:43 PM
Applies to: Centrify DirectControl 5.X on Solaris
Problem:
When Centrify OpenSSH is installed, and the LD_LIBRARY_PATH variable is set such that the path to the Centrify supplied libraries appears at the end.
i.e: LD_LIBRARY_PATH=/lib:/usr/lib:/usr/share/centrifydc/lib
The Centrify ssh commands throw an error similar to:
ld.so.1: ssh: fatal: relocation error: file /usr/share/centrifydc/bin/ssh: symbol EC_KEY_free: referenced symbol not found
Moving the Centrify library location to the beginning of LD_LIBRARY_PATH
i.e: LD_LIBRARY_PATH=/usr/share/centrifydc/lib:/lib:/usr/lib
will allow the Centrify commands to execute successfully, but potentially causes other system commands or commands from other vendors to error.
Cause:
The commands that come with Centrify OpenSSH (scp, sftp, slogin, ssh, sshd-add, ssh-agent, ssh-keygen, ssy-keyscan), require the use of Centrify compiled libraries that enable Elliptical Curve Encryption. The libraries that come with the Solaris Operating System are not compiled with this feature. The LD_LIBRARY_PATH variable controls which dynamically linked libraries are chosen at runtime. If the Centrify library (libcrypto.so) is chosen because it is first in the PATH, then Centrify commands are succcessful. If the system library is chosen first, the Elliptical Curve (EC_KEY) routines are not found.
Workaround:
The work-around is to use the Centrify wrapper script, /usr/share/centrifydc/bin/cdcexec, to unset the LD_LIBRARY_PATH variable before executing the Centrify command. Once the command finishes, the LD_LIBRARY_PATH variable will return to the value set by the user. Attached to this article is a script that can be used to make the modifications on the machine to allow Centrify commands to run properly. By default the script does NOT make the modifications required, it simply prints out the commands that need to be executed by root. The steps below will make a modification to the script such that the commands will actually be executed and nothing further will be needed.
Instructions for using the script are:
1) Download the file, fix_ssh.sh.tar
2) As the root user, untar the script
# tar xvf fix_ssh.sh.tar
3) Open the script in a text editor
4) Modify the lines as such
From:
act="echo"
#act=""
To:
#act="echo"
act=""
5) Save the file
6) Execute the script as the root user
# fix_ssh.sh
Resolution:
This issue will be addressed in a future release of Centrify Direct Control