ssh与winpexpect

时间:2012-06-22 20:09:37

标签: python ssh pexpect

我一直在尝试从Windows平台上的.py运行此命令到ssh:

child = winpexpect.spawn('ssh %s@%s' % ('myID','m.y.i.p'))

它应该与pexpect类似,但我收到此错误:

pexpect.ExceptionPexpect: The command was not found or was not executable: ssh.

我已经确认C:\ rhcygwin \ bin在我的路径中。有关如何指示.py文件找到ssh命令的任何建议吗?

编辑:我改变了方法:在我的.py中运行此代码

    command = ['bash', '-c', './myssh.sh']
    proc = subprocess.Popen(command, stdout = subprocess.PIPE)

它非常简陋,但它会成功连接。

2 个答案:

答案 0 :(得分:1)

据我所知,pexect实际上并不适用于Windows。有一个部分端口尝试,但它在我最后一次检查时被打破了。

如果你想在Windows上使用python自动执行某些操作,你可能会更好地使用paramiko library。有good docs,但您需要编译pycrypto,否则获得precompiled binary

答案 1 :(得分:1)

您必须使用winspawn方法,并指定.exe扩展名:

child = winpexpect.winspawn('ssh.exe %s@%s' % ('myID','m.y.i.p'))