1

Paramiko を使用して sharefile.com に SFTP として接続する方法はありますか?

たとえば、このアプローチを使用して、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 では、次の 2 つの方法で接続できると書かれています。

セキュリティ: 標準 (ポート 21) または暗黙の SSL/TLS (ポート 990)
FTP サーバー: company.sharefileftp.com
ユーザー名: ユーザー名またはユーザー名
_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

私がそれに接続できた唯一の方法は、GUIに組み込まれたUbuntuを使用してFTPに接続することでした。

ftp//:user@company.sharefileftp.com

を使用sftpすると、接続されません(デフォルトのポート22を使用していると思います)

私も端末から接続しようとしました:

ftp user@company.sharefileftp.com
Name or service not known
sftp -oPort=990 user@company.sharefileftp.com
ssh_exchange_identification: Connection closed by remote host
Couldn't read packet: Connection reset by peer
4

1 に答える 1

4

Secure FTP ( FTP over TLS/SSL ) はSFTPではありません。

SFTP は SSH 上で実行されます。

Paramiko を使用して FTP に接続することはできません。プレーンな FTP でも TLS/SSL 経由でもありません。

Python で TLS/SSL を介した FTPにftplibFTP_TLSのクラスを使用します。

于 2015-08-03T09:49:02.100 に答える