#!/usr/bin/perl use Net::SSH2; my $IP = "123.4.5.6"; my $PRIVKEY = "/home/user/.ssh/id_rsa"; my $PUBKEY = "/home/user/.ssh/id_rsa.pub"; my $USER = "remoteUser"; my $ssh = Net::SSH2->new(); $ssh->connect($IP,22) or die("connect(): $!\n"); $ssh->error && print "Connect: " . $ssh->error . "\n"; $ssh->auth_publickey($USER,$PUBKEY,$PRIVKEY,'foobar'); $ssh->error && print "Auth: " . $ssh->error . "\n"; die("authentication failed\n") unless($ssh->auth_ok); my $channel = $ssh->channel() or die("channel(): $!\n"); $ssh->error && print "Channel: " . $ssh->error . "\n"; $channel->shell(); $ssh->error && print "Shell: " . $ssh->error . "\n"; print $channel "uname -a\n"; while(<$channel>) { print "$_"; } $channel->close();