我想通过ssh执行一些程序,并从文件重定向其输入。以下代码的行为:

channel.exec_command('cat')
with open('mumu', 'r') as f:
    text = f.read()
    nbytes = 0
    while nbytes < len(text):
        sent = channel.send(text[nbytes:])
        if sent == 0:
            break
        nbytes += sent

应该等同于(假设公钥认证):
 ssh user@host cat < mumu

但是,应用程序挂起,等待更多输入。我认为这是因为stdin流从未关闭过。我该怎么做?

最佳答案

在频道上调用shutdown()(或shutdown_write())。

08-07 03:30