2

Python で scp、ssh、または sftp を使用して、リモート マシンからファイルをコピーできるようにしたいと考えています。私が見つけた最良の方法は、sftp で ssh を使用することです。この例を使用して、必要なことを達成しようとしています。

import paramiko
import os

paramiko.util.log_to_file('logfile.log')

host = "101.102.103.104"
port = 22
transport = paramiko.Transport((host, port))
password = "pass"
username = "user"

sftp = paramiko.SFTPClient.from_transport(transport)

filepath = '~/remote/file'
localpath = '~/local/file'
sftp.get(filepath, localpath)

sftp.close()
transport.close()

これを行うと、次のエラーが表示されます。

Traceback (most recent call last):
  File "example.py", line 19, in <module>
    sftp.get(filepath, localpath)
AttributeError: 'NoneType' object has no attribute 'get'

欠けているものや正しく行っていないものはありますか?

ありがとうございました

4

2 に答える 2

1

ユーザー名とパスワードは初期化されますが、使用されることはありません。トランスポートオブジェクトのconnectを呼び出す必要があります

password = "pass"
username = "user"
transport.connect(username = username, password = password)
于 2012-06-22T14:13:28.490 に答える
0

APIparamiko.Transport()、タプルを提供するために「ソケットのようなオブジェクト」を提供する必要があることを指定します。それが問題だと思います。

更新: ドキュメントで別の方法で指定されていますが、タプルは問題ありません。

于 2012-06-22T14:14:04.533 に答える