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.
The idea is that it will use the first connection it can make.
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;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|