2

paramikoとのSFTP接続を開くのに問題があります。私の現在のコードは次のとおりです。

client = SSHClient()
client.set_missing_host_key_policy(AutoAddPolicy())
client.load_system_host_keys()
client.connect('some.example.com', username="myuser", password="mypassword")
sftp_client = client.open_sftp()
sftp_client.put(my_local_file)

しかし、client.open_sftp()を押した時点で、「チャネルを開くことができません」という例外が発生します。

これを引き起こす可能性のあるアイデアはありますか?コマンドラインのsftpクライアントを使用してサーバーへの接続を開くことができました。

私はここで私の呼び出しについて推測しています、誰かが私に例を指摘することができれば、それは素晴らしいことです。

4

1 に答える 1

6

最初にトランスポートを作成して接続する必要があります。

transport = Transport((host, port))
transport.connect(username = username, pkey = mykey) # or password = mypassword

これで、SFTPクライアントを起動できます。

sftp_client = SFTPClient.from_transport(transport)

その後、あなたはすることができます

sftp_client.put(my_local_file)

そしてあなたが終わったとき

sftp_client.close()
transport.close()
于 2011-07-27T01:06:12.723 に答える