在使用 pxssh 进入远程服务器运行 unix 命令(如 uptime )时,我收到以下错误
Traceback (most recent call last):
文件“./ssh_pxssh.py”,第 33 行,位于 Login_remote(主机名、用户名、密码) 文件“./ssh_pxssh.py”,第 12 行,位于 login_remote 中 如果不是 s.login(主机名、用户名、密码): 文件“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pexpect/pxssh.py”,第 278 行,登录
**raise ExceptionPxssh ('could not synchronize with original prompt')
pexpect.pxssh.ExceptionPxssh:无法与原始提示同步**
第 33 行是我在 main 中调用此函数的地方。
我正在使用的功能在这里:
def login_remote(hostname, username, password):
s = pxssh.pxssh()
s.force_password = True
if not s.login(hostname, username, password, auto_prompt_reset=False):
print("ssh to host :"+ host + " failed")
print(str(s))
else:
print("SSH to remote host " + hostname + " successfull")
s.sendline('uptime')
s.prompt()
print(s.before)
s.logout()
每次运行脚本时都不会出现错误。相反,它是间歇性的。我运行脚本的时候有十分之七的情况出现。
最佳答案
我通过在登录函数中添加 sync_multiplier 参数解决了这个问题。
s.login(hostname, username, password, sync_multiplier=5 auto_prompt_reset=False)
请注意,sync_multiplier 是执行成功同步的通信超时参数。它会尝试读取提示至少 sync_multiplier 秒。 此方法的最坏情况性能是 sync_multiplier * 3 秒。
我个人设置了sync_multiplier=2,但这取决于我所使用的系统上的通信速度。
关于python-3.x - pxssh错误 'could not synchronize with original prompt',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054030/