4

I'm using Python 2.7 on ubuntu 11.10 distribution.

I have a problem with ftplib module and FTP_TLS connection. On my ftp server there is vsftp

When try a connection I receive this error:

ftplib.error_perm: 530 Please login with USER and PASS.

This is my code:

from ftplib import FTP_TLS
ftp =  FTP_TLS( '192.168.1.5' )
ftp.login( 'user' , 'password') 
ftp.close()

Anyway if I use the simple FTP connection, ftp = FTP('192.168.1.5') , it works!

But I need FTP_TLS connection. I tried also to insert param ftp.auth() and ftp.prot_p() but nothing happens.

Antonio-Dev
  • 43
  • 1
  • 6

2 Answers2

10

The FTP_TLS class doesn't seem to handle logins very well right now. Unfortunately, you have to explicitly send those commands to the server yourself.

from ftplib import FTP_TLS

# Do *not* specify the user and password in the FTP_TLS constructor arguments.
# Doing so will cause ftplib to try to login, resulting in the 530 error.
ftp = FTP_TLS('ftp.somewhere.com')
ftp.sendcmd('USER myusername') # '331 Please specify the password.'
ftp.sendcmd('PASS mypassword') # '230 Login successful.'
kuujo
  • 7,785
  • 1
  • 26
  • 21
  • It's still the case :C – Ctrl-C Mar 31 '17 at 13:31
  • FTP_TLS works correctly now, you can pass the username and password in the constructor: client = FTP_TLS(host="hostnamegoeshere", user="usernamegoeshere", passwd="pwgoeshere") – dbakiu May 01 '20 at 09:56
0

Try TLS Lite or M2Crypto both are FTP/TLS client and server.

Voislav Sauca
  • 3,007
  • 2
  • 18
  • 12