Je suis nouveau dans ce genre d'application Java et je cherche un exemple de code sur la connexion à un serveur distant en utilisant SSH, j'exécute des commandes et je récupère la sortie en utilisant Java comme langage de programmation.Comment exécuter des commandes SSH sur un système distant utilisant Java?
Répondre
Jetez un oeil à 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();
Est-ce que cela fonctionne? Pourquoi a-t-il donné un -1? – Zubair
@Zubair - Le gars qui a donné -1 n'a pas pris la peine d'expliquer son point de vue. Cette solution fonctionne parce qu'elle est aussi simple que possible. Ce n'est pas un "Java pur", mais c'est un inconvénient, mais si vous êtes sur Linux, vous ne pouvez pas le simplifier sans utiliser de bibliothèques tierces. – bobah
ok, merci pour l'explication – Zubair
je Ganymède pour ce il y a quelques ... yeas http://www.cleondris.ch/opensource/ssh2/
Vous pouvez jeter un oeil à ce cadre basé sur Java pour l'exécution de commande à distance, incl. via SSH: https://github.com/jkovacic/remote-exec Il repose sur deux bibliothèques SSH opensource, soit JSch (pour cette implémentation même une authentification ECDSA est supportée), soit Ganymed (l'une de ces deux bibliothèques sera suffisante). Au premier abord, cela peut sembler un peu complexe, vous devrez préparer beaucoup de classes liées à SSH (fournir le serveur et vos détails utilisateur, spécifier les détails de chiffrement, fournir des clés privées compatibles OpenSSH, etc., mais le SSH lui-même est assez complexe aussi). D'autre part, la conception modulaire permet une inclusion simple de plusieurs bibliothèques SSH, une implémentation facile du traitement des sorties d'autres commandes ou même des classes interactives, etc.
Voici la manière la plus simple de SSh en java. Téléchargez l'un des fichiers dans le lien ci-dessous et l'extrait, puis ajouter le fichier jar à partir du fichier extrait et ajouter à votre chemin de construction du projet http://www.ganymed.ethz.ch/ssh2/ et utiliser la méthode ci-dessous
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. Comment exécuter des commandes cmd via Java
- 2. Comment exécuter un programme CPU Hogging sur un serveur distant?
- 3. Comment exécuter un fichier batch sur un ordinateur distant?
- 4. Comment puis-je ssh dans un hôte distant avec Perl?
- 5. Comment faire pour exécuter des commandes Git sur le référentiel distant
- 6. Comment exécuter un service distant
- 7. Comment exécuter une commande sur un système Windows distant en tant qu'utilisateur non administrateur avec WMI?
- 8. Comment copier un fichier sur un serveur distant en Python en utilisant SCP ou SSH?
- 9. comment exécuter des commandes (externes) dans gvim
- 10. python exécuter le programme distant
- 11. Plusieurs commandes sur une machine distante utilisant un script shell
- 12. Limite SSH - bash sans commandes
- 13. Lire un fichier distant en utilisant Java
- 14. Comment puis-je exécuter des commandes système dans google app engine?
- 15. Comment exécutez-vous une commande sur un système distant dans un script BASH?
- 16. Comment exécuter des commandes CMD dans flex en utilisant actionscript?
- 17. comment exécuter un fichier de commandes en utilisant C++?
- 18. Comment exécuter les applications Red5 sur un serveur distant?
- 19. Meilleure façon de synchroniser le code sur le serveur distant en utilisant SCP (SSH-Copy)
- 20. Comment puis-je exécuter certaines commandes sur un thread séparé?
- 21. ne peut pas exécuter ssh de php
- 22. Commandes Linux depuis Java
- 23. Java exécutant des commandes dans le système d'exploitation
- 24. Installation de Java sur Linux en utilisant ssh
- 25. Comment créer un fichier dans l'hôte distant avec la création du répertoire en utilisant ssh
- 26. La meilleure façon d'exécuter des commandes à distance sur un serveur Windows à partir de Java?
- 27. Impossible d'exécuter des commandes sur le serveur Windows via une session SSH avec Plink
- 28. Exécuter des commandes contenant l'espace dans bash
- 29. exécuter un programme Java
- 30. Exécuter un script python distant à partir d'ASP.Net
Je posté un code qui pourrait aider à: http://stackoverflow.com/questions/2405885/any-good-jsch-examples –