与运行TLS1.2的服务器对话时出现客户端Python错误

2024-05-23 15:47:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我的网络托管公司VentraIP最近将我使用的服务器从“不安全”升级 至一个正在运行的TLS-1.2

这需要对相关脚本进行一些返工,新脚本连接然后更改 工作目录没问题

问题在于库文件中的任何操作(如目录列表)都会失败

测试程序

from ftplib  import FTP_TLS

# Establish TLS FTP Connection
ftp = FTP_TLS('servername')
ftp.debugging = 2
ftp.login(user = 'username', passwd = 'password')
ftp.prot_p()

# Change to To Relevant Public HTML Folder
ftp.cwd('public_html')
ftp.retrlines('LIST')

运行时日志

>>> %Run ftp-tls.py
*cmd* 'AUTH TLS'
*put* 'AUTH TLS\r\n'
*get* '234 AUTH TLS OK.\n'
*resp* '234 AUTH TLS OK.'
*cmd* 'USER xxxxxx.com'
*put* 'USER xxxxxx.com\r\n'
*get* '331 User xxx@xxxxxx.com OK. Password required\n'
*resp* '331 User xxx@xxxxxx.com OK. Password required'
*cmd* 'PASS **********'
*put* 'PASS **********\r\n'
*get* '230 OK. Current restricted directory is /\n'
*resp* '230 OK. Current restricted directory is /'
*cmd* 'PBSZ 0'
*put* 'PBSZ 0\r\n'
*get* '200 PBSZ=0\n'
*resp* '200 PBSZ=0'
*cmd* 'PROT P'
*put* 'PROT P\r\n'
*get* '200 Data protection level set to "private"\n'
*resp* '200 Data protection level set to "private"'
*cmd* 'CWD public_html'
*put* 'CWD public_html\r\n'
*get* '250 OK. Current directory is /public_html\n'
*resp* '250 OK. Current directory is /public_html'
*cmd* 'TYPE A'
*put* 'TYPE A\r\n'
*get* '200 TYPE is now ASCII\n'
*resp* '200 TYPE is now ASCII'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode (103,27,34,41,239,196)\n'
*resp* '227 Entering Passive Mode (103,27,34,41,239,196)'
*cmd* 'LIST'
*put* 'LIST\r\n'
*get* '150 Accepted data connection\n'
*resp* '150 Accepted data connection'

Traceback (most recent call last):
  File "C:\Users\peter\ftp-tls.py", line 11, in <module>
    ftp.retrlines('LIST')
  File "C:\Users\peter\AppData\Local\Programs\Thonny\lib\ftplib.py", line 485, in retrlines
    conn.unwrap()
  File "C:\Users\peter\AppData\Local\Programs\Thonny\lib\ssl.py", line 1115, in unwrap
    s = self._sslobj.shutdown()
OSError: [Errno 0] Error
>>> 

测试脚本目前运行在Win10-Python3.7.5上的Thonny 3.2.3上


任何人任何想法,例如我的python脚本、python库问题或服务器配置问题

谢谢

彼得


Tags: py脚本cmdauthgetputishtml