Сначала у меня была такая же проблема с pxssh: она была очень медленной!
Вот способ, который я нашел, чтобы заставить его работать быстрее:
#!/usr/bin/python
import pxssh
import getpass
try:
s = pxssh.pxssh()
s.PROMPT = "#"
hostname = raw_input('hostname: ')
username = raw_input('username: ')
password = getpass.getpass('password: ')
s.login(hostname, username, password, auto_prompt_reset=False)
s.sendline('ls') # run a command
s.prompt() # match the prompt
print(s.before) # print everything before the prompt.
s.sendline('ls -l /tmp') # run a command
s.prompt() # match the prompt
print(s.before) # print everything before the prompt.
s.logout()
except pxssh.ExceptionPxssh as e:
print("pxssh failed on login.")
print(e)
Ключевая часть - s.PROMPT = "#"
и auto_prompt_reset=False
в s.login()
.
Этот метод требует, чтобы вы знали шаблон приглашения (в моем случае это «#», я думаю, что атрибут PROMPT может быть установлен в регулярное выражение).