in reply to Net::SSH::Perl and Net::SSH::Perl::Agent
Hello arc444,
It looks that you have already an answer to your question. You never let us know if the proposed solution is working. If it did worked for you leave a comment for future reference. Someone else might benefit as well. :)
Further on, why you are using Net::SSH::Perl? Is there a specific reason? I would recommend to use Net::OpenSSH. Why? Simply read bellow:
From Net::OpenSSH-Vs.-Net::SSH::.*-modules:
Net::SSH::Perl is not well maintained nowadays (update: a new maintain +er has stepped in so this situation could change!!!), requires a bunc +h of modules (some of them very difficult to install) to be acceptabl +y efficient and has an API that is limited in some ways.
Regarding to your question you can use from the proposed module key_path => $private_key_path. Sample of code:
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Net::OpenSSH; # $Net::OpenSSH::debug = -1; my $host = 'localhost'; my %opts = ( user => "user", port => "22", # default # psw => "psw", key_path => "/home/user/.ssh/id_rsa" ); my $ssh = Net::OpenSSH->new($host, %opts); $ssh->error and die "Can't ssh to $host: " . $ssh->error; my @ls = $ssh->capture("ls"); $ssh->error and die "remote ls command failed: " . $ssh->error; chomp (@ls); print Dumper \@ls; __END__ $ perl test.pl $VAR1 = [ 'Desktop', 'Documents', . . . ];
If I understood your question correctly this should work for you. If not let me know so I can update my answer. I have being using the module Net::OpenSSH for a few years so far I never found a case that was failing for me. It has way way too many features that other modules do not have.
Hope this helps, BR
|
|---|