我想通过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()
)。