On 04/19/2010 03:16 PM, Jannik Sundø wrote:
Hi all,

I'm writing a script which will log into a list of servers if they have 
public/private keypairs set up. If a server doesn't, I want the script to move 
on to the next server rather than wait at a password prompt.

I'm using OpenSSH version 5.1p1 Debian-5, OpenSSL 0.9.8g 19 Oct 2007 on both 
client and server.

I'm using this command:

ssh r...@ip -o PasswordAuthentication=no KbdInteractiveAuthentication=no

This works for most servers, but not all (on some of them the script halts at a 
password prompt). I suspect those servers may run an older version of SSH which 
doesn't support the options I'm providing. Any ideas? Thanks for any help.

try

  ssh r...@ip -o PreferredAuthentications=publickey $command


And if you can write Perl, check also the Net::OpenSSH and Net::OpenSSH::Parallel modules.

http://search.cpan.org/~salva/Net-OpenSSH-0.47/lib/Net/OpenSSH.pm
http://search.cpan.org/~salva/Net-OpenSSH-Parallel-0.06/lib/Net/OpenSSH/Parallel.pm

- Salva

Reply via email to