У меня проблема с получением трубопровода для работы с paramiko.
Это работает:
ssh = paramiko.SSHClient()
[...]
stdin, stdout, stderr = ssh.exec_command("find /tmp")
stdout.read()
Это работает , а не (блокируется навсегда на stdout.read()):
[...]
stdin, stdout, stderr = ssh.exec_command("bash -")
stdin.write("find /tmp\n")
stdin.close()
stdout.read()
Есть идеи?
РЕДАКТИРОВАТЬ:
Я посмотрел исходный код paramiko, и ChannelFile.close на самом деле ничего не делает в терминахобщения.Итак, я посмотрел на API канала, и это, кажется, работает:
stdin.write("find /tmp\n")
stdin.flush()
stdin.channel.shutdown_write()
stdout.read()