in reply to Re^2: SSH connection error
in thread SSH connection error

I didn't see anything that seemed to be a show stopper however I thought this line looked a little odd
$params{'debug'} = 'true';
Usually I see this when creating a connection and debugging the session
my $ssh = Net::SSH::Perl->new($srvr, protocol => 2, debug => 1);

Maybe I'm just being picky. Perhaps you can try spelling it out like this and see if it helps. Are you receiving any debug information? If so could you please provide it. Also you could simplify this
my (my $stdout, my $stderr, my $exit2) = $ssh->cmd('ls -l');
with this
my ($stdout, $stderr, $exit2) = $ssh->cmd('ls -l');
Just some thoughts that might help. And don't forget the debug info.

Replies are listed 'Best First'.
Re^4: SSH connection error
by chargrill (Parson) on Feb 23, 2006 at 20:53 UTC

    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 +" );