Re: help with making an sftp connection

Brent Wood via beginners <[email protected]> Mon, 17 Apr 2023 04:46:36 +0000 (UTC)
Newsgroups gmane.comp.lang.perl.beginners
Message-ID <[email protected]>
 Cheers Jim,
I have already found that resource and tried a few ways to make it work, but it always seems to invoke public/private key authentication, which is not available on the remote system

my perl is:    
    my %args = (
         user => '$user',
         password => '$password',
         ssh_args => {
             user => '$user',
             password => '$password',
             protocol=>'2,1',
             debug => 1,
         }
    );

my $sftp=Net::SFTP->new($server, %args)
    or die "could not open connection to $server\n";
resulting in:
...
SH97R: Service accepted: ssh-userauth.
SH97R: Trying empty user-authentication request.
SH97R: Authentication methods that can continue: publickey,password.
SH97R: Next method to try is publickey.
SH97R: Publickey: testing agent key 'woodb@woodb-HP-EliteDesk-800-G6-Desktop-Mini-PC'
SH97R: Authentication methods that can continue: publickey,password.
SH97R: Next method to try is publickey.
SH97R: Trying pubkey authentication with key file '/home/baw/.ssh/id_rsa'
Wrong key type at /usr/local/lib/x86_64-linux-gnu/perl/5.34.0/Net/SSH/Perl/Auth/PublicKey.pm line 83.



I figure I need to disable the public key authentication method so only the password method is used, which will hopefully work.

If someone can post a Perl command to instantiate an SFTP connection with just the host, user & password parameters I think I can wrap everything else I need around that. 

I'm guessing I need to set PubkeyAuthentication to no & PasswordAuthentication to yes, but can't work out how to pass those parameters to when trying to establish the connection. 


Thanks,
Brent
   
On Monday, April 17, 2023 at 10:55:31 AM GMT+12, Jim Gibson <[email protected]> wrote:  
 
 Perl has a repository of user-submitted modules called Comprehensive Perl Archive Network (CPAN). Net::SFTP::Foreign can be installed from there, and it looks like a good candidate, as does Net::SFTP. The two modules use different methods for invoking the SFTP protocol. I would try one and, if that doesn’t work, the other. You can also search CPAN for other FTP and SFTP modules. Most modules come with their own documentation and sample code. See this link for Net::STFP::Foreign: 

<https://metacpan.org/pod/Net::SFTP::Foreign>

Try what that gives you, and come back here if you have any specific questions or problems. It is always good to give it a try for yourself before asking for help. Post what you try.


> On Apr 16, 2023, at 2:40 PM, Brent Wood via beginners <[email protected]> wrote:
> 
> Hi,
> 
> I'm not a perl coder, (though have written a few very simple Perl scripts when necessary) but now I need to write a Perl script to transfer specified files from one computer to another. I have scribbled out a script a while back using FTP, but now need to use SFTP. I can re-use most of the old FTP code/logic, but need some help to make the actual connection.
> 
> It is a secure (no external connectivity) network, with no public/private key security available, so authentication just via user/password
> 
> Some Googling for how I might do this in Perl has thrown up several possibilities, more confusing than informative, so I'm not sure how to best do this.
> 
> It looks like Net::SFTP::Foreign might best fit my needs, but I'm open to suggestions.
> 
> 
> Advice or a code snippet on how to make the connection should be enough, and much appreciated!!
> 
> 
> 
> Thanks,
> 
> Brent Wood

Jim Gibson
[email protected]