Paramiko的管道控制与输入/输出管道等效物

3 投票
1 回答
2495 浏览
提问于 2025-04-15 18:26

我需要一种基于paramiko的文件传输方法,使用一个轻量级的SSH2服务器(dropbear),但这个服务器不支持SCPSFTP。有没有办法实现类似于cat和重定向的文件传输,比如:

ssh server "cat remote_file" > local_file

使用paramiko的通道可以做到吗?

paramiko.Transport.open_channel()或者Message()能完成这个任务吗?我不太确定该怎么做。

1 个回答

3

下面的内容可以作为一个起点(比如说,./sshpipe 主机 "命令"):

#! /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])

撰写回答