2015-08-03 3 views
1

Есть ли способ использовать Paramiko, чтобы подключиться к sharefile.com как SFTP?Подключиться к неявным SSL/TLS (порт 990) с помощью Paramiko?

Например, используя этот подход, я могу подключиться к SFTP (тот, который я создал себя в Linux):

from paramiko import SSHConfig, SSHClient, AutoAddPolicy, AuthenticationException 

def connect(self): 
    for rec in self: 

     with closing(SSHClient()) as ssh: 
      ssh.set_missing_host_key_policy(AutoAddPolicy()) 
      try: 
       login = rec.login_id 
       ssh.connect(login.host, port=login.port, username=login.user, password=login.passwd) 
      except socket.gaierror: 
       raise ValidationError(_("Name or service '%s' not known") % (login.host)) 
      except AuthenticationException: 
       raise Warning(_("Bad username or password"))      
      with closing(ssh.open_sftp()) as sftp: 
       #do something 

Но если я пытаюсь подключиться с помощью входа информации для fileshare.com, он не работает , В fileshare.com он говорит, что вы можете подключить двумя способами:

Безопасность: Стандартный (порт 21) или неявных SSL/TLS (порт 990)
FTP Server: company.sharefileftp.com
имя пользователя: имя пользователя или username_id
Пароль: (пароль ShareFile)

Так что если я пытаюсь подключиться через порт 990, я буду получать либо соединения истекло из (через некоторое время), или эта ошибка:

File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 306, in connect 
    t.start_client() 
File "/usr/lib/python2.7/dist-packages/paramiko/transport.py", line 465, in start_client 
    raise e 
SSHException: Error reading SSH protocol banner 

Единственный способ, которым я был в состоянии подключиться к нему, был использованием Ubuntu построен в GUI для подключения так FTP, используя:

ftp//:[email protected] 

Если бы я использовал sftp, он бы не связывал (я предполагаю, что он использует порт 22 по умолчанию)

Я также попытался подключиться из терминала:

ftp [email protected] 
Name or service not known 
sftp -oPort=990 [email protected] 
ssh_exchange_identification: Connection closed by remote host 
Couldn't read packet: Connection reset by peer 

ответ

1

The Secure FTP (FTP over TLS/SSL) не является SFTP.

SFTP работает через SSH.

Вы не можете использовать Paramiko для подключения к FTP, ни простой FTP, ни через TLS/SSL.

Используйте класс FTP_TLS от ftplib для FTP через TLS/SSL в Python.

+0

Спасибо, тогда я попытаюсь использовать эту библиотеку вместо этого. – Andrius

Смежные вопросы