我正在尝试使用paramiko与命令行应用程序进行交互,但我做错了某些事情。
# that's the echo.py, the script I am connecting to via SSH
import sys, time
while 1:
x = sys.stdin.readline()
sys.stdout.write("got-" + x) # x already contains newline
# client.py
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('127.0.0.1', username='user', password='pass')
(stdin, stdout, stderr) = ssh.exec_command(r"python C:\test\echo.py")
stdin.write("xxx\n")
print "got back [%s]" % stdout.read() # <<< here the code got stuck, getting nothing back
注意:对我有效的唯一情况是使
echo.py
退出并在客户端上执行stdout.readlines()
,但显然这不是我要找的内容。我需要能够使用标准输入和输出发送和接收消息,可以选择支持某种超时。
tdaout.read()
中缺少了 "s" 吗?还是这只是你问题描述中的一个笔误? - mac