Descarga archivos a través de SSH usando Python

Estoy tratando de hacer un script que descargue (o cargue) archivos a través de ssh, ya que el puerto ftp está inhabilitado desde el firewall. Este es mi guión:

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() 

Esto me está dando “IOError: Failure”, ¿alguien puede ayudarme?

Debe especificar explícitamente la ruta remota:

 import os import paramiko ssh = paramiko.SSHClient() 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() 

De acuerdo con el comentario de Martin Prikryl, la siguiente línea de código está muy desaconsejada, ya que te abre contra el hombre en el ataque central, sin embargo, puede ser una solución temporal para las claves de host que faltan

 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 

Acaba de modificar la ruta de destino para incluir también el nombre del archivo. Intente cambiar.

 remotepath = '/opt/crestelsetup/patchzip' 

a

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