Sono nuovo in questo tipo di applicazione Java e cerco codice di esempio su come connettersi a un server remoto tramite SSH, eseguire comandi e ottenere l'output utilizzando Java come linguaggio di programmazione.Come si eseguono i comandi SSH sul sistema remoto utilizzando Java?
risposta
Dai un'occhiata alla Runtime.exec() Javadoc
Process p = Runtime.getRuntime().exec("ssh myhost");
PrintStream out = new PrintStream(p.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
out.println("ls -l /home/me");
while (in.ready()) {
String s = in.readLine();
System.out.println(s);
}
out.println("exit");
p.waitFor();
Funziona? Perché è stato dato un -1? – Zubair
@Zubair - Il ragazzo che ha dato -1 non si è preoccupato di spiegare il suo punto di vista. Questa soluzione funziona perché è il più semplice possibile. Non è "puro java", però, questo è un inconveniente, ma se sei su Linux, non puoi renderlo più semplice senza usare librerie di terze parti. – bobah
ok, grazie per la spiegazione – Zubair
Ho usato Ganimede per questo un paio di yeas fa ... http://www.cleondris.ch/opensource/ssh2/
Si può dare un'occhiata a questo framework basato su Java per l'esecuzione di comandi remoti, incl. via SSH: https://github.com/jkovacic/remote-exec Si basa su due librerie SSH opensource, o JSch (per questa implementazione è supportata anche l'autenticazione ECDSA) o Ganymed (una di queste due librerie sarà sufficiente). A prima vista potrebbe sembrare un po 'complesso, dovrai preparare molte classi correlate a SSH (fornendo il server e i dettagli dell'utente, specificando i dettagli di crittografia, fornendo chiavi private compatibili con OpenSSH, ecc., Ma lo stesso SSH è piuttosto complesso pure). D'altra parte, il design modulare consente l'inclusione di più librerie SSH, un'implementazione semplice dell'elaborazione di output di altri comandi o anche classi interattive ecc.
Di seguito è riportato il modo più semplice per SSh in Java. Scaricare qualunque dei file nel link qui sotto e l'estratto, quindi aggiungere il file jar dal file estratto e aggiungere al vostro percorso di generazione del progetto http://www.ganymed.ethz.ch/ssh2/ e utilizzare il metodo seguito
public void SSHClient(String serverIp,String command, String usernameString,String password) throws IOException{
System.out.println("inside the ssh function");
try
{
Connection conn = new Connection(serverIp);
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(usernameString, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");
ch.ethz.ssh2.Session sess = conn.openSession();
sess.execCommand(command);
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
System.out.println("the output of the command is");
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
}
}
- 1. Come modificare la versione CLR di PowerShell quando si eseguono i comandi da remoto?
- 2. eseguire comandi sul computer remoto tramite PHP
- 3. Come si eseguono i comandi cmd attraverso un file batch?
- 4. Esecuzione di comandi su ssh con Java
- 5. Come si eseguono i file eseguibili su Windows 7 utilizzando il prompt dei comandi?
- 6. Comandi di script in esecuzione dopo SSH
- 7. Come eseguire comandi di sistema (linux/bsd) utilizzando Java
- 8. connettersi al database mysql remoto tramite ssh utilizzando java
- 9. Come si eseguono comandi shell MULTIPLE in un'attività gruntjs?
- 10. Esegui comandi git sul telecomando?
- 11. bash non carica il nodo sul comando ssh remoto
- 12. SSH SCP File locale sul terminale remoto Mac Os X
- 13. Invio di comandi al server remoto tramite ssh tramite Java con JSch
- 14. Bash - Escaping comandi SSH
- 15. Come si eseguono i test delle meteore?
- 16. Come si eseguono i test in Sinatra?
- 17. Comando C# Esegui sistema remoto
- 18. variabili passando comando ssh remoto
- 19. Come si eseguono programmi con Strawberry Perl?
- 20. come rendere l'esecuzione di comandi SSH al timeout
- 21. Lettura di un file remoto utilizzando Java
- 22. Come aprire il prompt dei comandi e inserire i comandi utilizzando Java?
- 23. come caricare il file sul server remoto http usando java?
- 24. Come si eseguono i file .sh o .bat dal terminale?
- 25. è possibile utilizzare le variabili nel comando ssh remoto?
- 26. Java -Xmx, memoria massima sul sistema
- 27. Come si eseguono test specifici utilizzando il test dotnet?
- 28. come eseguire un file di script in remoto usando ssh
- 29. Come si eseguono script Lua su Android in un'applicazione Java?
- 30. Come visualizzare il nome dell'hostname sullo schermo quando si esegue l'ssh nel sistema remoto?
ho inviato un codice che potrebbero aiuto a: http://stackoverflow.com/questions/2405885/any-good-jsch-example –