Hôm nay chúng ta sẽ cùng tìm hiểu một ví dụ về JSch. Chúng ta có thể sử dụng thư viện này để tạo kết nối SSH trong Java. Cụ thể, dưới đây là về một chương trình dùng JSch để kết nối tới máy chủ có hỗ trợ SSH và thực thi các lệnh shell.
Ví dụ dùng JSch
Bạn có thể tải về file JAR của JSch từ trang web chính thức của nó. Bạn cũng có thể lấy chúng bằng cách khai báo dependency Maven như dưới đây.
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
</dependency>
Dưới đây là một ví dụ JSch đơn giản để chạy lệnh “ls -ltr” trên máy chủ.
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();
}
}
}
Đây là một ví dụ khá đơn giản về cách dùng JSch để tạo kết nối SSH trong Java. Hãy để lại bình luận nếu gặp bất kỳ vấn đề nào chạy thử ví dụ ở trên.
Bạn có thể tải file JSch jar từ trang web chính thức của nó. Nếu gặp bất cứ vấn đề gì khi làm theo ví dụ trên, đừng ngần ngại mà để lại comment bên dưới nhé.