views:

128

answers:

1

I need a method of paramiko based file transfer with a lightweight SSH2 server (dropbear) which has no support for SCP or SFTP. Is there a way of achieving a cat and redirect style file transfer, such as:

ssh server "cat remote_file" > local_file

with paramiko channels?

Can paramiko.Transport.open_channel() or Message() do the job? I am unsure of how to proceed.

+2  A: 

The following may be useful as a starting point (e.g. ./sshpipe host "command"):

#! /usr/bin/env python

import sys
import paramiko

def sshpipe(host, line) :
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(host)
    stdin, stdout, stderr = client.exec_command(line)
    output = stdout.read()
    sys.stdout.write(output)
    stdin.close()
    stdout.close()
    stderr.close()
    client.close()

sshpipe(sys.argv[1], sys.argv[2])
ZungBang