#!/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 "$. $_"; }