Java JSch Пример за извршување на команди на Shell на SSH Unix сервер
Денес ќе го разгледаме упатството за пример на JSch. Можеме да користиме JSch за создавање на SSH конекција во Java. Претходно напишав програма за поврзување со далечинска база на податоци на SSH сервер. Денеска презентирам програма која може да се користи за поврзување со серверот со овозможен SSH и извршување на команди на школка. Користам JSch за да се поврзам со оддалечен ssh сервер од java програма.
JSch Пример
Можете да преземете JSch jar од неговата официјална веб-страница. Можете исто така да ги добиете теглите JSch користејќи долунаведена зависност од Maven.
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
</dependency>
Подолу е едноставна програма за пример на JSch за извршување на командата \ls -ltr на серверот.
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();
}
}
}
Известете ме ако се соочите со некаков проблем со извршувањето на програмата за пример JSch. Тоа е прилично директен пример за JSch за да се создаде SSH врска во java програмата. Можете да ја преземете датотеката JSch jar од неговата официјална веб-страница.