2011-07-27 97 views
2

我有一些麻煩打開與paramiko的SFTP連接。我當前的代碼是: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客戶端打開與服務器的連接。

我猜我在這裏的調用,如果任何人都可以指向我的例子,那將是很棒的。

回答

5

您需要首先創建並連接到傳輸路徑:

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) 

,當你're done

sftp_client.close() 
transport.close()