Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

SFTP with SSH in perl

by satheya (Initiate)
on Dec 28, 2007 at 05:21 UTC ( #659302=perlquestion: print w/replies, xml ) Need Help??

satheya has asked for the wisdom of the Perl Monks concerning the following question:

Hai I am New to Perl, I like to develop a perl program which can do SFTP with SSH. In the program it should do SSL handshake with the server using my certificate and key. After Successfull connection it has to do the SFTP. Please Guide me to develope this program.

Replies are listed 'Best First'.
Re: SFTP with SSH in perl
by quester (Vicar) on Dec 28, 2007 at 06:00 UTC
    You probably want to start by taking a very long look at the CPAN module Net::SFTP. If your needs are simple you may be able to simply use the module. If you need to dig more deeply into the guts of the SFTP protocol reading the source of Net::SFTP should be instructive.
Re: SFTP with SSH in perl
by nimdokk (Vicar) on Dec 28, 2007 at 13:36 UTC
    Just to clarify, you seem to be asking about two different things. FTP over SSH (SFTP) and FTP with SSL. They are both FTP transfers (essentially) but the first tunnels FTP through the SSH protocol whereas the second uses SSL with the FTP transfer. FTP w/SSL uses SSL certificate authentication (along with user ID/password if configured that way). FTP over SSH uses public/private keys for authentication (this can be configured to use only key-auth, or key-auth plus user/password auth).

    If you are planning to use FTP over SSH with public/private keys, you need to set up the private SSH key on the source machine, then export the public SSH key and upload it to the correct location on the destination machine. This is over and above whatever Perl you code and would allow the Perl code to authenticate to the remote server. As others have said, there are modules on CPAN for this sort of thing.

    If you are planning to use FTP w/SSL, then you need to get a copy of the SSL certificate for the site (there are several ways to do this, from having the site admin send it to you, to copying it out of IE or whatever browser you might be using or pointing your script to the correct local SSL cert to use. I'm not 100% fluent in the ins and outs of SSL cert authentication from a client side perspective. I've set it up and gotten it working on the server side but that's about it. The last I looked, there really wasn't anything in CPAN for handling FTP w/SSL (that could have changed) but you might look at the Net::FTP and and SSL modules that are out there for direction.

    I would suggest figuring out which protocols you are planning to use (FTP over SSH aka SFTP or FTP with SSL aka FTPS) then look for modules on CPAN.

Re: SFTP with SSH in perl
by salva (Canon) on Dec 28, 2007 at 11:23 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://659302]
Approved by randyk
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (9)
As of 2021-04-21 22:09 GMT
Find Nodes?
    Voting Booth?

    No recent polls found