Я хотел бы иметь возможность управлять удаленным интерпретатором Python по SSH-соединению и управлять им с самого Python.Paramiko и «remote python»
У меня есть базовый шаблон:
ssh.connect(servername, serverport, username, key_filename=key_filename)
transport = ssh.get_transport()
channel = transport.open_session()
channel.exec_command(PATH_TO_EXEC)
while True:
r, w, e = select.select([channel], [], [], 1)
if channel in r:
try:
if channel.recv_ready():
x = channel.recv(64)
elif channel.recv_stderr_ready():
x = channel.recv_stderr(64)
else:
continue
if len(x) == 0:
print '\r\n*** EOF\r\n',
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
pass
, который позволяет мне общаться с удаленным приложением с pdb
: channel.set("command\n")
.
Он отлично работает с bash
, с gdb
, но нет ничего, что я могу сделать, чтобы получить выходной поток из python
(v2)
Как Python обрабатывать свой выходной поток, почему мой код не работает с Это?
первые ответы предоставляют очень интересные альтернативы 'paramiko', но мне было бы интересно понять, что здесь не так, если у кого есть ключ ... – Kevin