pexpect

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kitebuggy
User
Beiträge: 29
Registriert: Donnerstag 5. August 2021, 21:11

Hallo

Ich habe folgenden Code in Python:

Code: Alles auswählen

#!/usr/bin/python3


import pexpect,sys


class connect():
    
    def login(self):
        print('Connecting...')
        l=pexpect.spawn('ssh -l a anywhere')
        l.logfile=sys.stdout.buffer
        l.expect('password')
        l.sendline('passwd')
        l.expect('$')
        l.sendline('ls')
        l.expect('$')
        
if __name__=='__main__':
    
    a=connect()
    a.login()
Dies soll mir das directory auf dem Enfernten Rechnet anzeigen, mir allen gesendeten Eingaben. Stattdessen erhalte ich:
Connecting...

a@anywhere's password: passwd
ls
Warum wird hier der Text nicht angezeigt?

Nein, ich will pxssh nicht benutzen und dies ist ein vereinfachter Code,
Version von pxssh: 4.8

Vielen Dank für einen Vorschlag.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum benutzt Du nicht eine Bibliothek, die ssh direkt unterstützt, wie z.B. paramiko?
kitebuggy
User
Beiträge: 29
Registriert: Donnerstag 5. August 2021, 21:11

Weil ich damit keine Verbindung zum Server hinbekomme. Genausowenig wie mit pxssh :-(

Und mit pexpect hat es bisher funktioniert.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Naja, anscheinend ja doch nicht, weil es nach der Passworteingabe nicht weiter geht.
Benutzeravatar
sparrow
User
Beiträge: 4183
Registriert: Freitag 17. April 2009, 10:28

+1 für paramiko
Antworten