in reply to Re^3: SFTP connection failure with Perl “Net::SFTP” module
in thread SFTP connection failure with Perl “Net::SFTP” module

Hi thanos, I removed the password as you suggested but it still trying to login with password before using the private key:
my %args = ( user => "$user", port => "$port", key_path => 'path/sftp_download', ssh_args => { user => "$user", identity_files => [ 'path/sftp_download'], port => "$port", protocol=>'2,1', debug => 1, } ); my $sftp=Net::SFTP->new($server, %args) or die "could not open connect +ion to $server\n";

Replies are listed 'Best First'.
Re^5: SFTP connection failure with Perl “Net::SFTP” module
by thanos1983 (Parson) on May 06, 2019 at 09:42 UTC

    Hello Michaels,

    The option key_path is from module Net::SFTP::Foreign not from Net::SFTP.

    Can you try this:

    #!usr/bin/perl use strict; use warnings; use Net::SFTP::Foreign; my %args = ( host => "127.0.0.1", user => "user", port => "10022", key_path => "path/sftp_download" ); my $sftp = Net::SFTP::Foreign->new(%args); $sftp->die_on_error("Unable to establish SFTP connection"); my $ls = $sftp->ls('/sample/path') or die "unable to retrieve directory: ".$sftp->error; print "$_->{filename}\n" for (@$ls);

    I would use full path to the SSH keys of your PC. For example /home/user/.ssh/id_rsa. It seems that from the directory that you are executing the script the keys are not reachable.

    Update: You are using path/sftp_download as the location of you SSH keys. This is the location that you want to store the file I assume. First step is to correctly assign the SSH keys file. Use key_path => "/home/user/.ssh/id_rsa" on the code above and let us know if this works.

    Hope this helps, BR

    Seeking for Perl wisdom...on the process of learning...not there...yet!