#!/bin/env perl use strict; use warnings; use Net::SSH::Perl; my @ids = ('/path/to/id_dsa'); my %params = ( protocol => 2, interactive => 1, identity_files => \@ids, debug => 1, ); my $host = 'somehostwithssh'; my $ssh = Net::SSH::Perl->new( $host, %params ) or die "Could not create SSH object for $host\n"; $ssh->login('username'); my ( $out, $err, $exit ) = $ssh->cmd( 'ls /tmp' ); print "out: $out\n" if defined $out; print "err: $err\n" if defined $err; print "exit: $exit\n" if defined $exit;