使用FTP上传文件。 522 SSL连接失败;需要会话重用

时间:2018-06-02 20:06:20

标签: python python-3.x ssl

已回答 -

FTPES - Session Reuse Required

我可以连接到FTP服务器,但是当我尝试查看目录时,它会向我发送此错误。

522 SSL连接失败;需要会话重用:请参阅vsftpd.conf手册页中的require_ssl_reuse选项。

我研究了它,我发现有一些解决方案,但我无法理解如何实现它们。

from ftplib import FTP_TLS    
ftp = FTP_TLS()
ftp.set_debuglevel(2)     
ftp.connect('host')    
ftp.login('user', 'pass')
ftp.prot_p()
ftp.set_pasv(True)

ftp.retrlines('LIST')

这是我的代码然后我尝试使用这种方法,但我认为它不适用于我,因为当我进入被动模式时,它会将我的公共IP发回给我。

from ftplib import FTP_TLS

# replace original makepasv function with one which always returns
# the peerhost of the control connections as peerhost for the data
# connection
_old_makepasv = FTP_TLS.makepasv
def _new_makepasv(self):
    host,port = _old_makepasv(self)
    host = self.sock.getpeername()[0]
    return host,port
FTP_TLS.makepasv = _new_makepasv

ftp = FTP_TLS(ipAddress)
ftp.login(...)
ftp.nlst()

这是我的调试。

*get* '220 (vsFTPd 2.2.2)\n'
*resp* '220 (vsFTPd 2.2.2)'
*cmd* 'AUTH TLS'
*put* 'AUTH TLS\r\n'
*get* '234 Proceed with negotiation.\n'
*resp* '234 Proceed with negotiation.'
*cmd* 'USER '
*put* 'USER \r\n'
*get* '331 Please specify the password.\n'
*resp* '331 Please specify the password.'
*cmd* 'PASS '
*put* 'PASS \r\n'
*get* '230 Login successful.\n'
*resp* '230 Login successful.'
*cmd* 'PBSZ 0'
*put* 'PBSZ 0\r\n'
*get* '200 PBSZ set to 0.\n'
*resp* '200 PBSZ set to 0.'
*cmd* 'PROT P'
*put* 'PROT P\r\n'
*get* '200 PROT now Private.\n'
*resp* '200 PROT now Private.'
*cmd* 'TYPE A'
*put* 'TYPE A\r\n'
*get* '200 Switching to ASCII mode.\n'
*resp* '200 Switching to ASCII mode.'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode ().\n'
*resp* '227 Entering Passive Mode ().'
*cmd* 'LIST'
*put* 'LIST\r\n'
*get* '150 Here comes the directory listing.\n'
*resp* '150 Here comes the directory listing.'
*get* '522 SSL connection failed; session reuse required: see require_ssl_reuse option in vsftpd.conf man page\n'
*resp* '522 SSL connection failed; session reuse required: see require_ssl_reuse option in vsftpd.conf man page'

0 个答案:

没有答案