gpt4 book ai didi

python - 尝试连接到 FTP 站点但收到错误的 SSL 版本号错误?

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:32 25 4
gpt4 key购买 nike

我正在使用 Python 2.7。我最近使用端口 990 成功建立了到我的 ftp 站点的连接。但是,我需要切换到端口 22 的站点没有更新。所以我只更改了端口号从 990 到 22。但是,在我之后这样做我得到了错误:

[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:661)

我已经尝试检查其他类似的帖子,这些帖子建议将 https://添加到网站。我使用的是 FTP 而不是 url,所以这对我来说是不可能的。我也尝试将 ssl_version 更改为 ssl.PROTOCOL_SSLv23 但出现以下错误:

[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:661)

这是我提供的完整代码。有谁知道问题是什么?感谢您的帮助。

from ftplib import FTP_TLS
import socket
import ssl

class tyFTP(FTP_TLS):
def __init__(self, host='', user='', passwd='', acct='', keyfile=None, certfile=None, context=None, timeout=60):
FTP_TLS.__init__(self, host, user, passwd, acct, keyfile, certfile, context, timeout)
def connect(self, host='', port=0, timeout=-999):
if host != '':
self.host = host
if port > 0:
self.port = port
if timeout != -999:
self.timeout = timeout

try:
self.sock = socket.create_connection((self.host, self.port), self.timeout)
self.af = self.sock.family
self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, ssl_version=ssl.PROTOCOL_TLSv1)
# self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, ssl_version=ssl.PROTOCOL_SSLv23)
self.file = self.sock.makefile('rb')
self.welcome = self.getresp()
except Exception as e:
print e

return self.welcome

FTP_SITE = "sftp.MySite.com"

UPLOAD = {
"USERNAME": "username",
"PASSWORD": "password"
}

DOWNLOAD = {
"USERNAME": "username",
"PASSWORD": "password"
}

server = tyFTP()
# changed from 990. 990 works with no issues.
server.connect(host=FTP_SITE, port=22)

最佳答案

990 是隐式 FTPS 的端口,而 22 是 SSH 的端口,因此也是 SFTP 的端口。我的猜测是,他们不仅切换了端口,而且实际上从 FTPS(通过 SSL 的 FTP)切换到了 SFTP(通过 SSH 的文件传输)。这也表明您使用的主机名:sftp.MySite.com

FTPS 和 SFTP 是完全不同的协议(protocol),您不能使用实现 FTPS 的代码连接到 SFTP 服务器。对于在 Python 中支持 SFTP 的库,请参阅 google search .

关于python - 尝试连接到 FTP 站点但收到错误的 SSL 版本号错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com