如何让 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'@[^:]+:.*?/#?'):
我正在使用 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'@[^:]+:.*?/#?'):