tweetiepooh has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to write a fairly simple script that will ssh to a remote host, run a command and capture the output. Now the basics are fairly easy but what I need a little help with is the connection phase.
The plan for connection is
- 1) Use ssh keys in memory (ssh-agent)
2) Use my account with known password
3) Use known local account with known password.
4) Use root with my keys
5) Use root with known password from a list
6) Give up and report error.
Now I can trap the $ssh->login with eval{} and that's fine.
Question : how do I chain eval's or whatever mechanism to accomplish this without the program falling over.
use Net::SSH::Perl; while (my $server = <read from file>) { chomp $server; print $server; my $ssh = SSHConnect($server); ... } sub SSHConnect { my $server = shift; my $ssh = Net::SSH::Perl->new($server,protocol=>'2,1'); eval { $ssh->login(); }; if ($@) { warn "Some error message about $server"; }; return $ssh; }
Back to
Seekers of Perl Wisdom