use Net::SSH2; my $ssh2 = Net::SSH2->new(); $ssh2->debug(1); $ssh2->connect('hostname') or die; if ($ssh2->auth_publickey('username', 'openssh.public', 'openssh.private.ppk')) { print "Connected"; } else { print "failed"; }