Search code examples
pythonsshsftpparamiko

Paramiko's SSHClient with SFTP


How I can make SFTP transport through SSHClient on the remote server? I have a local host and two remote hosts. Remote hosts are backup server and web server. I need to find on backup server necessary backup file and put it on web server over SFTP. How can I make Paramiko's SFTP transport work with Paramiko's SSHClient?


Solution

  • paramiko.SFTPClient

    Sample Usage:

    import paramiko
    paramiko.util.log_to_file("paramiko.log")
    
    # Open a transport
    host,port = "example.com",22
    transport = paramiko.Transport((host,port))
    
    # Auth    
    username,password = "bar","foo"
    transport.connect(None,username,password)
    
    # Go!    
    sftp = paramiko.SFTPClient.from_transport(transport)
    
    # Download
    filepath = "/etc/passwd"
    localpath = "/home/remotepasswd"
    sftp.get(filepath,localpath)
    
    # Upload
    filepath = "/home/foo.jpg"
    localpath = "/home/pony.jpg"
    sftp.put(localpath,filepath)
    
    # Close
    if sftp: sftp.close()
    if transport: transport.close()