sojourner9 has asked for the wisdom of the Perl Monks concerning the following question:
Trying to create a perl script that SSHv2 to a Cisco device for their XML/NETCONF API. In order to do so, it needs to connect to a subsystem on the remote switch.
Command line example would be:
ssh username@192.168.1.1 -s xmlagent
I've been able to get this to work using Expect. But, I'm not sure that's the best way to do it.
Using expect:
## SSH TO THE SWITCH my $exp = new Expect(); $exp->raw_pty(1); $exp->spawn("ssh","-s","-2",$user."@".$switch,"xmlagent");
Using Net::OpenSSH:
I've tried to get it to work using Net::OpenSSH, but that fails on an error:
my $ssh = Net::OpenSSH->new("$host", master_opts=>[-s => "xmlagent"], +user=>$user, password=>$pass);
Debugging OpenSSH shows it is giving an SSH command formatted like this:
ssh -s xmlagent 192.168.1.1
Which SSH fails on , with the message
ssh: Could not resolve hostname xmlagent: Name or service not known
SSH appears to want the hostname first, and then the options rather than options first then hostname.
So, should I keep using Expect to SSH to the switch, or is there a better way to do this?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: SSH to remote subsystem (Net::OpenSSH?)
by salva (Canon) on Mar 19, 2013 at 16:48 UTC | |
by sojourner9 (Initiate) on Mar 19, 2013 at 21:23 UTC | |
by salva (Canon) on Mar 20, 2013 at 08:53 UTC | |
by sojourner9 (Initiate) on Mar 20, 2013 at 15:17 UTC | |
by salva (Canon) on Mar 20, 2013 at 15:24 UTC | |
|