无法使用certfile(python)与FTP建立SSL连接



我正在尝试使用ftplib与FTP服务器建立连接。我收到了两个文件,一个扩展名为.crt的证书和一个PEM格式的证书(RSA KEY+证书(。

我使用PEM格式的证书来创建一个上下文,使用以下代码:

import ssl
from ftplib import FTP_TLS
ssl_context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
ssl_context.load_cert_chain('./certificate3') 
ftps = FTP_TLS(context = ssl_context)
ftps.connect(host, porta)
ftps.login(user = user, passwd = pwd)
ftps.prot_p()
ftps.nlst()

如果我删除最后一个命令(nlst(,我会收到响应:"230已登录"。因此,当我试图用nlst()命令提取FTP内的文档列表时,我收到一条错误消息:

TimeoutError: [WinError 10060] A connection attempt failed because the connected component did not respond
correctly after a period of time or the established connection has failed
because the connected host did not respond

有人知道哪里出了问题,以及如何修复代码以建立连接吗?

我可以用WinSCP建立到FTP服务器的连接。通过WinSCP,我可以运行一个脚本来将服务器与我的本地目录同步。下面可以找到命令:

option batch abort
option confirm off
open ftp://user:password@hostserver:port -hostkey="SHA256 KEY"
synchronize local local_path remote_path
exit

该命令必须在.txt文件中,并通过.bat文件执行该命令。

希望我能在同样的问题上帮助其他人。

最新更新