in reply to Problems with Net::OpenSSH

Try this. It prompts for a password. It returns true if correct or "Permission denied" if incorrect.
#!/usr/bin/perl use strict; no warnings; use Expect; use Net::OpenSSH; select STDOUT; $| = 1; select STDERR; $| = 1; my $username = 'root'; my $password = $ARGV; my $ip = 'localhost'; my $timeout = 10; my $debug = 0; my $ssh = Net::OpenSSH->new( "$username\@$ip", strict_mode => 0 ); my ( $pty, $pid ) = $ssh->open2pty("show ip arp") or die "unable to run remote command show ip arp"; my $expect = Expect->init($pty); $expect->raw_pty(1); $debug and $expect->log_user(1); $debug and print "waiting for password prompt\n"; $expect->expect( $timeout, ":" ) or die "expect failed, $expect->exp_error()\n"; $expect->send("$password\n"); while (<$pty>) { print "$. $_"; }

Replies are listed 'Best First'.
Re^2: Problems with Net::OpenSSH
by aeaton1843 (Acolyte) on Nov 23, 2010 at 15:57 UTC

    This code gives me the same error that I was seeing with my test code. The following is the output executing exactly what you have posted with changed IP/username, of course.

    andy@andy-desktop:~/core/arpinfo$ ./test2.pl Password: Password: expect failed, Expect=GLOB(0x2083bb8)->exp_error() Connection to 10.105.0.62 closed by remote host.