我正在使用Python 2.7。 我最近成功地建立了一個連接到我的ftp站點使用端口990.但是,有一個un更新到我需要切換到端口22的站點。所以我改變的是端口號從990到22.然而,在我這樣做,我得到了錯誤:試圖連接到FTP站點,但得到錯誤的SSL版本號錯誤?
[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)
他們有可能恢復到普通的舊FTP而不是SFTP。您是否嘗試過不使用SSL的情況下訪問服務器? – holdenweb
他們向我保證他們正在使用SSL遷移到SFTP。 –
SFTP不使用SSL,但使用SSH。 –