前段时间我创建了一个完整的FTP库。现在我想连接到SFTP服务器。据我在研究中发现,使用ftplib是不可能的。然而,我试图连接到仅SFTP服务器,它没有任何问题。没有错误也没有例外!
现在我有点困惑,因为我不确定这是否真的是一个安全的连接(这对这个应用程序很重要)。特别是因为我在网上找不到类似的案例。这让我想到了以下问题:
这是我使用的基本代码:
server = 'host-adress'
user = 'username'
password='password'
ftp = FTP(server)
ftp.login(user,password)
所有操作如上传和下载文件都可以正常工作 根据我的主机,服务器配置为SFTP。
记录返回结果:
*cmd* 'USER username'
*put* 'USER username\r\n'
*get* '331 Password required for username\n'
*resp* '331 Password required for username'
*cmd* 'PASS ********'
*put* 'PASS ********\r\n'
*get* '230 User username logged in\n'
*resp* '230 User username logged in'
答案 0 :(得分:3)
FTP和SFTP是两种完全不同的协议。他们绝对没有任何共同之处。您无法将FTP库连接到SFTP服务器。
您的日志毫无疑问地显示了FTP会话。
虽然您(或您的主持人)可能将SFTP与FTPS(FTP over TLS / SSL)错误。见FTPS versus SFTP。对于FTPS,只需使用FTP_TLS
class而不是FTP
。界面相同(FTP_TLS
派生自FTP
)。
如果您确实需要SFTP(通过SSH),则需要使用其他库,例如Paramiko或pysftp。
请参阅SFTP in Python? (platform independent)。