Scenerio: Mi piacerebbe eseguire comandi su macchine remote da un programma Java su ssh (sto usando OpenSSH sul mio computer di sviluppo). Mi piacerebbe anche fare la connessione ssh passando la password piuttosto che impostare le chiavi come farei con 'expect'.
Problema: quando si tenta di eseguire l'accesso "come previsto" come password, il processo creato con ProcessBuilder non sembra visualizzare la richiesta della password. Quando si eseguono normali comandi non-ssh (ad es. 'Ls') posso ottenere gli stream e interagire con loro semplicemente bene. Sto combinando errore standard e standard in un flusso con redirectErrorStream(true);
quindi non mi manca in errore standard ... Quando eseguo ssh con l'opzione '-v', vedo tutto il logging nello stream ma non lo faccio vedere il prompt. Questa è la prima volta che cerco di utilizzare ProcessBuilder per qualcosa di simile. So che sarebbe più semplice usare Python, Perl o il buon vecchio, ma il mio capo vuole utilizzare ciò che stiamo cercando di ottenere (file di log remoti e script in esecuzione) all'interno di un programma Java esistente, quindi sono piuttosto bloccato.Esecuzione di comandi su ssh con Java
Grazie in anticipo per l'aiuto!
+2 per In alternativa, -1 per non andare prima lì (chiamandolo "alternativamente". Net è ancora un +1 :) –
Consiglierei paramiko per java, abilmente chiamato jaramiko - http://www.lag.net/jaramiko/. originariamente in Python, è stato portato su Java. renderà più semplice l'uso della versione python quando il boss lascia perdere :) – popcnt