Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FTPES - FTP over explicit TLS/SSL in Python

Tags:

I need a python client to do FTPES (explicit), does anyone has experience with any python package that can do this.

I am not able to do this in python, but can connect to FTP server using tools like FileZilla

Thanks

like image 794
user424060 Avatar asked Apr 04 '11 05:04

user424060


People also ask

Does FTP use SSL or TLS?

File Transfer Protocol Secure. FTP was around first – but not in a secured state initially. FTPS uses either the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocols to provide connection security through encryption. This is provided by the FTPS servers x.

Is FTP over TLS encrypted?

Communication with the server is always encrypted if you use FTP over TLS.


2 Answers

FTP-SSL Explicit is well supported by native Python. After setting up the connection, you can use all the standard ftplib commands. More can be found at: http://docs.python.org/2/library/ftplib.html#ftplib.FTP_TLS

Here's a basic example for downloading a file:

from ftplib import FTP_TLS ftps = FTP_TLS('ftp.MySite.com') ftps.login('testuser', 'testpass')           # login anonymously before securing control channel ftps.prot_p()          # switch to secure data connection.. IMPORTANT! Otherwise, only the user and password is encrypted and not all the file data. ftps.retrlines('LIST')  filename = 'remote_filename.bin' print 'Opening local file ' + filename myfile = open(filename, 'wb')  ftps.retrbinary('RETR %s' % filename, myfile.write)  ftps.close() 
like image 94
SilentSteel Avatar answered Sep 24 '22 06:09

SilentSteel


For me this worked: (login after auth). Taken from Nullege. They seem to be tests for ftplib.

self.client = ftplib.FTP_TLS(timeout=10) self.client.connect(self.server.host, self.server.port)  # enable TLS self.client.auth() self.client.prot_p()  self.client.login(user,pass) 
like image 27
StefanMZ Avatar answered Sep 21 '22 06:09

StefanMZ