http://www.perlmonks.org?node_id=1053672


in reply to Re^2: Net::OpenSSH Problem
in thread Net::OpenSSH Problem

what happens when you run the following code?
my $ssh = Net::OpenSSH->new($host, user => $USERNAME, password => $PASSWORD, strict_mode => 0); $ssh->error and die "Couldn't establish SSH connection: " . $ssh->erro +r; $ssh->system('!pwd') or die "remote command failed: " . $ssh->error; print "pwd done\n";

Replies are listed 'Best First'.
Re^4: Net::OpenSSH Problem
by kburns1969 (Novice) on Sep 12, 2013 at 16:59 UTC
    It runs fine outputting my current home dir. Def a problem of it not giving back control to the script or something ??
    $ssh->error and die "Couldn't establish SSH connection: " . $ssh->erro +r; $ssh->system('!bash') or die "remote command failed: " . $ssh->error; # remote end will look like this after !bash # bp>!bash # [kburns@ssl01-d:Active] ~ # print "will never print this line\n"; $ssh->system('pwd') or die "remote command failed: " . $ssh->error;
      It runs fine outputting my current home dir

      Then, you don't need to execute !bash at all.

      Just run via Net::OpenSSH system (or capture?) the commands you want to run on the remote machine prefixing them by an exclamation mark.

        Arghhhhh. I was about to respond with why this was still a problem and then realized I can execute the vendors shell and it's commands from the legacy BSHELL. These boxes (F5 LBs) have an older CLI Shell and a Newer one. To get into the newer one you would typically just run !bash and then the 'tmsh' command. From there you could run the show commands (show ltm virtual, etc). I never realized I could execute them right from the BSHELL like B>!tmsh sho ltm virtual detail Now I just need to figure out the capture part. Thanks a bunch. Hopefully you will be rid of me for now :)