i reported this some months ago.
i still use this:
===
===
diff -r -u -N openssl-0.9.7a.orig/crypto/rand/rand_unix.c
openssl-0.9.7a/crypto/rand/rand_unix.c
--- openssl-0.9.7a.orig/crypto/rand/rand_unix.c Thu Nov 28 09:08:40 2002
+++ openssl-0.9.7a/crypto/rand/rand_unix.c Fri Feb 28 11:41:25 2003
@@ -159,8 +159,8 @@
#endif
)) >= 0)
{
- struct timeval t = { 0, 10*1000 }; /* Spend 10ms on
- each file. */
+ struct timeval t = { 15, 0 }; /* Spend 15s on
+ each file. */
int r;
fd_set fset;
@@ -185,11 +185,11 @@
up here, otherwise, we will do
this once again for the remaining
time. */
- if (t.tv_usec == 10*1000)
- t.tv_usec=0;
+ if (t.tv_sec == 15)
+ t.tv_sec=0;
}
while ((r > 0 || (errno == EINTR || errno == EAGAIN))
- && t.tv_usec != 0 && n < ENTROPY_NEEDED);
+ && t.tv_sec != 0 && n < ENTROPY_NEEDED);
close(fd);
}
===
patch to compile openssl. that way openssh starts all the time on solaris.
niki
> I can't tell if I have a problem with OpenSSH, OpenSSL or with Sun's
> /dev/random (or some combination).
>
> On a Netra t1 running Solaris 9, at boot time, I'm getting these
> messages:
>
> starting /usr/local/sbin/sshd... PRNG is not seeded
> /etc/rc2.d/S98opensshd: Error 255 starting /usr/local/sbin/sshd... bailing.
>
> I'm running:
>
> OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, OpenSSL 0.9.7c 30 Sep 2003
>
> I've spent a bit of time investigating and trussing, and have surmised
> or discovered the following:
>
> I have cut down the number of tasks that get started. At the time that
> S98opensshd is run only 11 processes are running. On a typical Solaris
> system, one could expect 30 processes to be running at the time sshd
> is started.
>
> Sun's sshd (which seems to have a different pedigree) uses
> /dev/urandom (notwithstanding their comments in random(7D) about the
> quality of random numbers).
>
> In fact, /dev/random seems to be able to supply random numbers fairly
> rapidly, but it seems it needs a "kick-start". On several occasions,
> after sshd had failed to start at boot time, I tried to start it
> manually using the same command and repeatedly got the same error
> message. I was even able to truss the problem. If I persevere,
> eventually, I can get the daemon to start.
>
> Once it starts, I have tried unsuccessfully to drain /dev/random and
> get it to fail again.
>
> I have built a trivial solution to the problem which I have
> implemented as a startup script (S97opensshd_helper) which uses dd to
> get 1024 random numbers from /dev/random; it then cats them back to
> /dev/random. This seems to be enough to satisfy OpenSSL. I'm sure it's
> overkill, but it does the job. S97opensshd_helper only takes 1 second
> to get enough random numbers to start the ball rolling.
>
> There is a large amount of variation in how fast /dev/random can
> supply 1024 random bytes. I have clocked speeds as high as 26 MB/s. If
> /dev/random is drained, it tends to settle down to a rate of about 4
> KB/s.
>
> At the point where it is failing, sshd (via OpenSSL) is only
> requesting 32 bytes.
>
>
> Sun's /dev/random seems to be able to accumulate quite a large number
> of random bytes over time. It strikes me as odd that there seems to be
> no mechanism for storing a pool of these bytes between reboots.
>
> OpenSSL allows for alternate sources of random numbers; these must be
> pipes. For its own program, openssl, it allows the use of a storage
> file which can be set using an environment variable, RANDFILE. It
> seems that this mechanism is not available to applications which use
> the OpenSSL libraries.
>
>
> As I said, I have a workaround. It's not elegant, but it's adequate. I
> raise this issue in the hope that I've overlooked something.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]