coldmiser has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to put together a script that will allow me to connect to a unix system and run a few commands. I am able to use 'exec' without any problems, but when I try to use 'shell' I am prompted to 'Enter user name'. I've searched the site and google and it appears that I'm using 'shell' correctly so I'm not really sure what I'm doing wrong here
here is a copy of the code:
my $host = "host"; my $user = "name"; my $pass = "password"; my $cmd = "pwd"; my $cmd2 = "who"; my $ssh2 = Net::SSH2->new(); $ssh2->connect($host) or die "Unable to connect $@ $! \n"; $ssh2->auth_password($user, $pass) or die "Unable to login $@ $! \n"; my $chan = $ssh2->channel(); $chan->exec($cmd); while (<$chan>) { chomp; print "ONE: [$_]\n"; } $chan->close; my $chan2 = $ssh2->channel(); $chan2->exec("who"); while (<$chan2>) { chomp; print "TWO: [$_]\n"; } $chan2->close; my $chan3 = $ssh2->channel(); $chan3->shell(); print $chan3 "pwd\n"; print "THREE-a: [$_]\n" while <$chan3>; print $chan3 "who\n"; print "THREE-b: [$_]\n" while <$chan3>; $chan3->close;
and my output
ONE: [/usr/local] TWO: [user pts/40 Jun 26 07:04 (192.168.1.247)] TWO: [user pts/41 Jun 26 07:05 (192.168.1.247)] TWO: [user pts/42 Jun 26 07:25 (192.168.1.194)] TWO: [user pts/43 Jun 26 07:57 (192.168.1.194)] THREE-a: [Enter user name: Enter user name: ] THREE-b: [Enter user name: ]
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Net::SSH2 shell in Windows
by zentara (Cardinal) on Jun 26, 2012 at 17:56 UTC | |
by coldmiser (Hermit) on Jun 27, 2012 at 16:57 UTC | |
|
Re: Net::SSH2 shell in Windows
by syphilis (Archbishop) on Jun 27, 2012 at 01:00 UTC | |
by coldmiser (Hermit) on Jun 27, 2012 at 17:03 UTC |