2011-02-10 11 views
6

Sono in una situazione in cui ho bisogno di passare alcuni testi a un prompt generato da un'API (sembra per API è un comportamento piuttosto strano, questa è la prima volta che mi sono imbattuto in questo), come di seguito:Come gestire l'API interattiva in python

kvm_cli = libvirt.open("qemu+ssh://[email protected]/system") 

allora un avviso presenta chiede la password ssh (password for 10.0.10.8 is:), devo digitare manualmente lì per muoversi su e cedere l'oggetto kvm_cli avevo bisogno.

Ho provato a utilizzare il modulo pexpect per gestire questo, ma è per la riga di comando del sistema operativo anziché API.

È anche possibile aggirare questo problema utilizzando i file di certificazione ssh ma non è un approccio di autenticazione favorevole nel nostro scenario.

Poiché il nostro wrapper per il metodo "open" non è interattivo, non possiamo chiedere all'utente di inserire la password, avete mai pensato a come potrei indirizzarlo?

+0

Immagino che i file di certificazione ssh siano gli stessi del login "basato su chiave" suggerito da Andrea. perché pensi che i certificati ssh non siano un approccio praticabile a questo problema, è quello che userei nella situazione. –

risposta

4

Non sono un utente di libvirt, ma credo che il problema non sia nella libreria, ma nel metodo di connessione. Sembra che ti stia connettendo tramite ssh, quindi devi autenticarti.

ho letto il libvirt page on ArchWiki, e penso che si potrebbe provare:

Problemi correlati