Source : http://www.cleondris.ch/en/opensource-ssh2.php
Par exemple :
Ganymed SSH-2 for Java est une bibliothèque qui implémente le protocole SSH-2 en Java pur (testé sur J2SE 1.4.2 et 5.0). Il permet de se connecter aux serveurs SSH à partir de programmes Java. Il prend en charge les sessions SSH (exécution de commandes à distance et accès au shell), la redirection de port local et distant, la redirection de flux local, la redirection X11, SCP et SFTP. Il n'y a aucune dépendance vis-à-vis d'un fournisseur JCE, car toutes les fonctionnalités de chiffrement sont incluses.
程序 :
复制代码代码如下 :
@Test
public void testSsh() {
Chaîne nom d'hôte = "192.168.0.1" ;
Chaîne nom d'utilisateur = "root" ;
Chaîne mot de passe = "mot de passe" ;
essayer {
/* Créer une instance de connexion */
Connexion conn = new Connection (nom d'hôte);
/* Connectez-vous maintenant */
conn.connect();
System.out.println("connexion ok");
/*
* Authentifier. Si vous recevez une IOException disant quelque chose comme
* "Mot de passe de la méthode d'authentification non pris en charge par le serveur à ce stade."
* alors veuillez consulter la FAQ.
*/
boolean isAuthenticated = conn.authenticateWithPassword (nom d'utilisateur, mot de passe);
si (isAuthenticated == false)
throw new IOException("Échec de l'authentification.");
System.out.println("Authentification ok");
/* Créer une session */
Session session = conn.openSession();
sess.execCommand("uname -a");
System.out.println("Voici quelques informations sur l'hôte distant :");
/*
* Cet exemple basique ne gère pas stderr, ce qui est parfois
* dangereux (veuillez lire la FAQ).
*/
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
tandis que (vrai) {
Ligne de chaîne = br.readLine();
si (ligne == null)
casser;
System.out.println(ligne);
}
/* Afficher l'état de sortie, si disponible (sinon "null") */
System.out.println("ExitCode: " + sess.getExitStatus());
/* Ferme cette session */
sess.close();
/* Ferme la connexion */
conn.close();
} catch (IOException e) {
e.printStackTrace(System.err);
Système.exit(2);
}
}
运行结果:
复制代码代码如下 :
connectez-vous ok
Authentification ok
Voici quelques informations sur l'hôte distant :
Linux localhost.localdomain 2.6.22 #1 SMP mercredi 13 août 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
Code de sortie : 0