如何使pxssh期望在python中出现其他提示

时间:2018-07-31 10:33:57

标签: python ssh pexpect

我正在使用pexpect SSH到设备。下面是代码:

session = pxssh.pxssh()

if not session.login(ip, "username", "password"):
    print("SSH session failed on login")
    print(str(session))
    return False
else:
    print("SSH session login successfull")
    return True

我在其他具有以下提示的设备上进行了本地测试:

username@Machine54:~/

然后我在具有

的服务器上进行了尝试
username@server:/#

但是会引发错误:

Error could not synchronize with original prompt

如何修改将ssh插入服务器的代码。

1 个答案:

答案 0 :(得分:0)

pxssh.login有一个可选参数original_prompt,根据您的版本,该参数可能是模式[#$],即哈希或美元。这在文档中被描述为“非常乐观且容易上当”。您应该尝试设置一个更接近您期望的提示的示例,例如:

if not session.login(ip, "username", "password",
                     original_prompt=r'@[^:]+:.*?/#?'):