pxssh抛出文件结束(EOF)。异常风格平台异常

时间:2014-07-23 20:07:31

标签: python ssh pexpect

我在使用pxssh模块时遇到问题。我的代码如下:

    try:
        ssh_handle = pxssh.pxssh(timeout=None)
        ssh_handle.logfile = sys.stdout
        ssh_handle.login(host, username, password)
        index = ssh_handle.expect(['Are you sure you want to continue connecting \(yes\/no\)\? ', '.*?password:.*', '.*?\$.*'])
        if index == 0:
            ssh_handle.sendline('yes')
            ssh_handle.sendline(password)
        if index == 1:
            ssh_handle.sendline(password)
        ssh_handle.sendline('sudo -s')
        ssh_handle.sendline(password)
        return ssh_handle
    except pxssh.ExceptionPxssh as e:
        print "SSH connection to %s failed" % host
        sys.exit()

出于某种原因,我不断收到错误:

File "/usr/lib/python2.7/dist-packages/pexpect/pxssh.py", line 313, in login
    if not self.sync_original_prompt(sync_multiplier):
  File "/usr/lib/python2.7/dist-packages/pexpect/pxssh.py", line 205, in sync_original_prompt
    b = self.try_read_prompt(sync_multiplier)
  File "/usr/lib/python2.7/dist-packages/pexpect/pxssh.py", line 168, in try_read_prompt
    prompt += self.read_nonblocking(size=1, timeout=timeout)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 919, in read_nonblocking
    raise EOF('End Of File (EOF). Exception style platform.')
pexpect.EOF: End Of File (EOF). Exception style platform.

我不确定我做错了什么,并且会感谢任何人可能有的任何指示。

提前致谢, NAV

1 个答案:

答案 0 :(得分:1)

您可以执行ssh_handle.expect(pexpect.EOF)并在ssh_handle.before中读取结果。或者尝试从'(是/否)\?中删除'\' (即做'(是/否)?')。最后一条建议对我来说是Suse。

链接:http://pexpect.sourceforge.net/doc/