sftp using ftplib

2019-02-21 14:28发布

问题:

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

回答1:

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