#!/usr/bin/perl use strict; use warnings; use Net::SSH::Perl; # Net::SSH2 is even easier than this my %hostdata = ( 'localhost' => { user => "z", password => "qumquat", cmdtorun => "ls -la", misc_data => [], }, 'zentara.zentara.net' => { user => "z", password => "aardvark", cmdtorun => "/usr/bin/uptime", misc_data => [], }, ); foreach my $host (keys %hostdata) { my $ssh = Net::SSH::Perl->new($host, port => 22, debug => 1, protocol => 2,1 ); $ssh->login($hostdata{$host}{user},$hostdata{$host}{password} ); my ($out) = $ssh->cmd($hostdata{$host}{cmdtorun}); print "$out\n"; }