Why do I get error "errno=2, there may be no source of entropy on this system" when using the SQL Server ODBC driver?

The SSL version of the SQL Server ODBC driver needs a source of unpredictable data to work correctly. Many open-source operating systems provide a "randomness device" (/dev/urandom or /dev/random) that serves this purpose, and the SQL Server ODBC driver uses these devices if available.

If the driver is unable to find a randomness device, it returns the error:

"SSL connection failed in syscall (errno=2, there may be no source of entropy on this system, consult OpenSSL documentation)"

On machines where /dev/urandom or /dev/random are not present, the EGD entropy gathering daemon can be used as a source of random data. It provides a socket interface through which entropy (randomness) can be gathered. In your ODBC data source, use the Entropy attribute to specify the path to the EGD socket. For example, if you create the socket in /etc when you start the EGD daemon (egd.pl /etc/entropy), use:

[SQLSERVER_SAMPLE_SSL]
Driver		         = Easysoft ODBC-SQL Server SSL
Server                   = my_machine\my_instance
User                     = my_domain\my_user
Password                 = my_password
Encrypt		         = Yes
TrustServerCertificate	 = No
Entropy                  = /etc/entropy