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?
In reply to SSH to remote subsystem (Net::OpenSSH?) by sojourner9
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |