2015-04-08 18 views
6

Sto cercando di creare uno script che scarica (o carica) i file su ssh, poiché la porta ftp è disabilitata dal firewall. Questo è il mio script:Download di file su SSH utilizzando Python

import os 
import paramiko 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect('10.170.21.93', username="abhishek", password="@bhishek$") 
sftp = ssh.open_sftp() 
localpath = 'abc.txt' 
remotepath = '/opt/crestelsetup/patchzip' 
sftp.put(localpath, remotepath) 
sftp.close() 
ssh.close() 

Questo mi sta dando "IOError: Failure", qualcuno può aiutare?

+0

possibile duplicare http://stackoverflow.com/questions/3091326/put-in-sftp-using-paramiko – jester112358

+0

Il post duplicato non ha lo script di lavoro. –

+0

No, ma ha lo stesso errore di te e una risposta accettata come soluzione al problema. – jester112358

risposta

4

è necessario specificare esplicitamente il percorso remoto:

import os 
import paramiko 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect('10.170.21.93', username="abhishek", password="@bhishek$") 
sftp = ssh.open_sftp() 
localpath = 'abc.txt' 
remotepath = '/opt/crestelsetup/patchzip/abc.txt' 
sftp.put(localpath, remotepath) 
sftp.close() 
ssh.close() 
+0

Si prega di non suggerire alle persone di usare 'AutoAddPolicy', senza spiegare le conseguenze! Stai perdendo protezione contro [attacchi Man-in-the-middle] (https://en.wikipedia.org/wiki/Man-in-the-middle_attack)! +1 comunque –

1

appena modificato il percorso di destinazione per includere il nome del file come well.Try per cambiare.

remotepath = '/opt/crestelsetup/patchzip' 

a

remotepath = '/opt/crestelsetup/patchzip/abc.txt' 
Problemi correlati