如何让 pxssh 期待 python 中的其他提示

How to make pxssh expect other prompt in python

我正在使用 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 连接到服务器。

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

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