Bzzt. Thanks for playing. Try again.
What's happening sometimes is that I'm getting a hung process somewhere. A "netstat | grep host" reveals that several file descriptors are being used and not released, with the connection status revealed as "ESTABLISHED". Even if it was "established" (which it wasn't), I shouldn't be seeing these. At worst, I should get a bunch of "TIME_WAIT" that drop out after a minute or two.
I can't duplicate this in testing for some reason either. It only seems to happen after the program has been running for a while and it only happens with this one host in particular.
Oh, and I'm pretty sure I found a bug in Perl's "getservbyname" function (at least when checking for 'ssh'). When I run it on Linux, I get 22 (as expected). On Solaris 8, I get nothing, which forced me to manually specify the port with Net::SSH::Perl.
I've reported it via perlbug, but have no way of knowing what's happened since. Oh, and YES, I know I have ssh and sshd running.
God, I love Unix - NOT!