SFTP using ftplib

Abruzzo Forte e Gentile picture Abruzzo Forte e Gentile · Jan 7, 2010 · Viewed 26.1k times · Source

I need to download a file from a host using SFTP.

Do you know if is it possible to do that using Python ftplib? I saw an example here, but when I try to connect I receive EOFError.

I tried this code:

import ftplib
ftp = ftplib.FTP()
ftp.connect( "1.2.3.4", "22" )

This method returns with an error after long time so I cannot perform a call to login. I cannot try the constructor FTP([host[, user[, passwd[, acct[, timeout]]]]]) because my port is 22 but ftplib default is 21.

If I follow the example

ftp = ftplib.FTP("1.2.3.4")
ftp = ftplib.FTP("1.2.3.4","22")

I receive a connection refused so I cannot enter any username password. Can you help me? Thank you very much

Answer

David Schmitt picture David Schmitt · Jan 7, 2010

As the question you linked to states, ftplib doesn't support SFTP (which is a transfer protocol over SSH and has nothing to do with FTPS, FTP over SSL). Use the recommended Paramiko instead.