Recherche de site Web

Exemple Java JSch pour exécuter des commandes Shell sur un serveur Unix SSH


Aujourd'hui, nous allons examiner le tutoriel d'exemple JSch. Nous pouvons utiliser JSch pour créer une connexion SSH en Java. Plus tôt, j'ai écrit un programme pour se connecter à une base de données distante sur un serveur SSH. Aujourd'hui, je présente un programme qui peut être utilisé pour se connecter au serveur compatible SSH et exécuter des commandes shell. J'utilise JSch pour me connecter à un serveur SSH distant depuis un programme Java.

Exemple JSch

Vous pouvez télécharger le jar JSch depuis son site officiel. Vous pouvez également obtenir les jars JSch en utilisant la dépendance Maven ci-dessous.

<dependency>
    <groupId>com.jcraft</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.53</version>
</dependency>

Voici un exemple simple de programme JSch pour exécuter la commande « ls -ltr » sur le serveur.

import java.io.InputStream;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;


public class JSchExampleSSHConnection {

	/**
	 * JSch Example Tutorial
	 * Java SSH Connection Program
	 */
	public static void main(String[] args) {
	    String host="ssh.journaldev.com";
	    String user="sshuser";
	    String password="sshpwd";
	    String command1="ls -ltr";
	    try{
	    	
	    	java.util.Properties config = new java.util.Properties(); 
	    	config.put("StrictHostKeyChecking", "no");
	    	JSch jsch = new JSch();
	    	Session session=jsch.getSession(user, host, 22);
	    	session.setPassword(password);
	    	session.setConfig(config);
	    	session.connect();
	    	System.out.println("Connected");
	    	
	    	Channel channel=session.openChannel("exec");
	        ((ChannelExec)channel).setCommand(command1);
	        channel.setInputStream(null);
	        ((ChannelExec)channel).setErrStream(System.err);
	        
	        InputStream in=channel.getInputStream();
	        channel.connect();
	        byte[] tmp=new byte[1024];
	        while(true){
	          while(in.available()>0){
	            int i=in.read(tmp, 0, 1024);
	            if(i<0)break;
	            System.out.print(new String(tmp, 0, i));
	          }
	          if(channel.isClosed()){
	            System.out.println("exit-status: "+channel.getExitStatus());
	            break;
	          }
	          try{Thread.sleep(1000);}catch(Exception ee){}
	        }
	        channel.disconnect();
	        session.disconnect();
	        System.out.println("DONE");
	    }catch(Exception e){
	    	e.printStackTrace();
	    }

	}

}

Faites-moi savoir si vous rencontrez un problème avec l'exécution du programme exemple JSch. C'est un exemple assez simple de JSch pour créer une connexion SSH dans un programme Java. Vous pouvez télécharger le fichier jar JSch depuis son site officiel.