in reply to Net::SSH2 strangeness

Some more details: code is running on rhel 5, all boxes i'm going to be connecting to will also be rhel (2.1 3 4 and 5). there are no firewall rules preventing ssh connections from the box this code runs to any of the other boxes.

also, just tried using ssh2->error() but it seems to be useless.

-----------------

#!/usr/bin/perl use warnings; use strict; use Net::SSH2; use Data::Dumper; my $hostname = shift; chomp($hostname); my $ssh2 = Net::SSH2->new(); $ssh2->connect($hostname) or die "cant connect to $hostname\n"; $ssh2->auth_password('root','mypassword') or die "cant login to $hostn +ame\n"; (my $code, my $error_name, my $error_string) = $ssh2->error(); if ($code) { print "$code: $error_name: $error_string \n"; exit(); } my $chan = $ssh2->channel(); $chan->blocking(0); $chan->shell(); print $chan "uname -a\n"; my @uname = <$chan>; print @uname; print $chan "who\n"; my @who = <$chan>; print @who; $chan->close;
[root@lpo-wiki-01 ~]# ./ssh.pl localhost Linux lpo-wiki-01 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i6 +86 i686 i386 GNU/Linux root pts/0 2008-05-15 07:54 (val.vmsinfo.com) root pts/1 2008-05-15 12:11 (val.vmsinfo.com) root pts/2 2008-05-18 11:42 (10.41.0.213) [root@lpo-wiki-01 ~]# ./ssh.pl yoda cant connect to yoda [root@lpo-wiki-01 ~]#

Replies are listed 'Best First'.
Re^2: Net::SSH2 strangeness
by ikegami (Patriarch) on May 18, 2008 at 18:03 UTC

    also, just tried using ssh2->error() but it seems to be useless.

    You die before actually reaching that code. Something like the following would be needed:

    $ssh2->connect($hostname) or do { my ($err_code, $err_name, $err_text) = $ssh2->error(); die "cant connect to $hostname: " . "($err_code, $err_name) $err_text\n"; };
      Now we are getting somewhere:
      [root@lpo-wiki-01 ~]# ./ssh.pl yoda cant connect to yoda: (-5, LIBSSH2_ERROR_KEX_FAILURE) Unable to exchan +ge encryption keys [root@lpo-wiki-01 ~]#

      wtf? :)

        You say "I can manually connect with ssh using the same login credentials as I'm trying here". Was that with ssh's -2 switch (which would duplicate Net::SSH2's lack of ssh protocol version 1 support)?