我目前正在尝试使用pexpect控制一个简单的ssh连接到我的raspberry pi,我用它来控制某些智能家居。在
我刚开始使用它,我正在学习它的帮助下,“暴力Python”,一本佩内特的书。在
我在Windows上了解到pexpect.spawn
对象在Windows上不可用。在文档中,据说我必须使用PopenSpawn
。我有一个简单的脚本:
import traceback
import pexpect
from pexpect.popen_spawn import PopenSpawn
try:
child = pexpect.popen_spawn.PopenSpawn('ssh pi@192.168.178.34')
a = child.expect(['password:', 'The authenticity of host'], timeout=300, async=True)
if a == 0:
child.sendline('123456789')
print('this ip has exists in know_host files!')
if a == 1:
print('this ip will be added to know_host files!')
child.sendline('yes')
child.expect('password:')
child.sendline('raspberry')
# send test
child.sendline("echo TestMessage")
child.interact()
except pexpect.EOF:
traceback.print_exc()
这总是给我一个错误:
^{pr2}$我发现有人问了同样的问题——他还没有得到答复。在
SSH不是本机的windows命令。在下面的行映射命令中指向位于C:\Windows\System32\OpenSSH中的ssh。OpenSSH现在添加到System32的windows10中。试试这个,我想对你有用。在
试试这个
^{pr2}$更好的是,您可以安装新的Windows子系统forlinux并运行脚本。Windows Subsystem for Linux Installation Guide for Windows 10
相关问题 更多 >
编程相关推荐