[Python] pxssh: pexpect.TIMEOUT: Timeout exceeded in read_nonblocking

ugaciaka ugaciaka a gmail.com
Ven 18 Set 2009 15:13:16 CEST


Salve,

ho bisogno di realizzare uno script che acceda a varie macchine linux
con ssh ma non voglio utilizzare l'autenticazione con chiave vuota.

Ho visto pxssh e pensavo facesse proprio al caso mio ma non funziona tanto bene.

Esempio:
#!/usr/bin/env python
import pxssh
import getpass

s = pxssh.pxssh()
s.login ("192.168.0.3", "utente", "pw")
s.logout()

Non funziona:
Traceback (most recent call last):
  File "sshbrute2.py", line 6, in <module>
    s.login ("192.168.0.3", "utente", "pw")
  File "/usr/lib/python2.6/site-packages/pxssh.py", line 243, in login
    if not self.synch_original_prompt():
  File "/usr/lib/python2.6/site-packages/pxssh.py", line 134, in
synch_original_prompt
    self.read_nonblocking(size=10000,timeout=1) # GAS: Clear out the
cache before getting the prompt
  File "/usr/lib/python2.6/site-packages/pexpect.py", line 824, in
read_nonblocking
    raise TIMEOUT ('Timeout exceeded in read_nonblocking().')
pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().


Ho cercato con google e ho trovato questo:
http://bytes.com/topic/python/answers/760027-read_nonblocking-error-pxssh
e ho modificato /usr/lib/python2.6/site-packages/pexpect.py come
scritto cioé alla prima della prima istanza di read_nonblocking() ho
aggiunto il sendline e lo sleep.

Solo che ora solleva questa eccezione:
Traceback (most recent call last):
  File "sshbrute2.py", line 6, in <module>
    s.login ("192.168.0.3", "utente", "pw")
  File "/usr/lib/python2.6/site-packages/pxssh.py", line 222, in login
    raise ExceptionPxssh ('password refused')
pxssh.ExceptionPxssh: password refused

Come risolvere?

Grazie


Maggiori informazioni sulla lista Python