Ricerca nel sito web

Esempio Java JSch per eseguire comandi Shell su SSH Unix Server


Oggi esamineremo il tutorial di esempio di JSch. Possiamo usare JSch per creare una connessione SSH in java. In precedenza ho scritto un programma per connettersi al database remoto sul server SSH. Oggi presento un programma che può essere utilizzato per connettersi al server abilitato per SSH ed eseguire i comandi della shell. Sto usando JSch per connettermi al server ssh remoto dal programma java.

JSch Esempio

Puoi scaricare JSch jar dal suo sito ufficiale. Puoi anche ottenere i vasetti JSch usando la dipendenza maven sottostante.

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

Di seguito è riportato un semplice programma di esempio JSch per eseguire il comando \ls -ltr” sul server.

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();
	    }

	}

}

Fammi sapere se riscontri problemi con l'esecuzione del programma di esempio JSch. È un esempio piuttosto semplice di JSch per creare una connessione SSH nel programma Java. È possibile scaricare il file jar JSch dal suo sito Web ufficiale.