FWIW, $params{'debug') = 'true' spits out a lot of debug information as the script is running, which coincidentally takes a long time. I got a bunch of this, (trimmed for brevity, anyone who's watched the output of ssh -v hostname will appreciate that)
$ perl netssh.pl
localhost: Reading configuration data /Users/username/.ssh/config
localhost: Reading configuration data /etc/ssh_config
localhost: Connecting to www.c2group.net, port 22.
localhost: Remote protocol version 1.99, remote software version OpenS
+SH_<some_version> FreeBSD
localhost: Net::SSH::Perl Version 1.29, protocol version 2.0.
localhost: No compat match: OpenSSH_<some_version> FreeBSD.
localhost: Connection established.
localhost: Sent key-exchange init (KEXINIT), wait response.
localhost: Algorithms, c->s: 3des-cbc hmac-sha1 none
localhost: Algorithms, s->c: 3des-cbc hmac-sha1 none
localhost: Entering Diffie-Hellman Group 1 key exchange.
localhost: Sent DH public key, waiting for reply.
localhost: Received host key, type 'ssh-dss'.
... and finally:
Output:
Exit Code:
0
I've already changed the my( my $stdout, my $stderr, my $exit2 ) line to remove the superflous "my"s... and now I notice the following:
if ($stdout){print "Output:\n$_\n\n";}
$_ doesn't contain anything at that point, so this would work better:
if ($stdout){print "Output:\n$stdout\n\n";}
As far as your original problem, do you have any special characters in your password that might be gumming up the works? (%, @, $ would all need to be escaped out of your password, especially if you have it in double quotes as your example code above)
--chargrill
$/ = q#(\w)# ; sub sig { print scalar reverse join ' ', @_ }
+ sig
map { s$\$/\$/$\$2\$1$g && $_ } split( ' ', ",erckha rlPe erthnoa stJu
+" );
|