1

リモートサーバーのディレクトリにあるファイルを読み取るために、pysftp を使用して別のサーバーに接続する Linux サーバーで Python スクリプトを実行しています。スクリプトを実行すると、リモート サーバーへの接続中に失敗し、「このサービスでは sftp 接続のみが許可されます」というタイトルのテキスト ファイルが作成されます。

このファイルは、私のプロジェクト ディレクトリ内に作成されます。以下は、失敗している私のコードの一部です。

def sftp_get_file(sftp_host, sftp_username):
    with pysftp.Connection(sftp_host, sftp_username) as sftp:
        # transfer file from remote to local
        sftp.get(remote_file, local_file)

コードは非常にシンプルで、ローカル サーバーをリモート サーバーとして使用してテストしたところ、機能しました。実際にSFTPに依存して新しい環境でテストしたところ、失敗しました。助言がありますか?pysftp は、SFTP のみを使用する必要がある時点で SSH を使用していますか?

4

1 に答える 1

1

問題は、スクリプトの数行下で sftp.execute('ls') を実行したことが原因であることが判明しました。私がリモート接続していたサーバーは、サポートされている sftp コマンドのみであり、そのコマンドは禁止されていました。

于 2016-02-26T16:14:47.887 に答える