今天我们将研究JSch示例教程。我们可以使用JSch在Java中创建SSH连接。早些时候我写了一个程序来连接到SSH服务器上的远程数据库(/community/tutorials/java-mysql-ssh-jsch-jdbc)。
JS 例子
您可以從其官方網站下載 JSch jar. 您也可以使用下面的 JSch jar 來獲得 JSch jar。
1<dependency>
2 <groupId>com.jcraft</groupId>
3 <artifactId>jsch</artifactId>
4 <version>0.1.53</version>
5</dependency>
下面是一个简单的JSch示例程序,在服务器上运行ls -ltr
命令。
1import java.io.InputStream;
2
3import com.jcraft.jsch.Channel;
4import com.jcraft.jsch.ChannelExec;
5import com.jcraft.jsch.JSch;
6import com.jcraft.jsch.Session;
7
8public class JSchExampleSSHConnection {
9
10 /**
11 * JSch Example Tutorial
12 * Java SSH Connection Program
13 */
14 public static void main(String[] args) {
15 String host="ssh.journaldev.com";
16 String user="sshuser";
17 String password="sshpwd";
18 String command1="ls -ltr";
19 try{
20
21 java.util.Properties config = new java.util.Properties();
22 config.put("StrictHostKeyChecking", "no");
23 JSch jsch = new JSch();
24 Session session=jsch.getSession(user, host, 22);
25 session.setPassword(password);
26 session.setConfig(config);
27 session.connect();
28 System.out.println("Connected");
29
30 Channel channel=session.openChannel("exec");
31 ((ChannelExec)channel).setCommand(command1);
32 channel.setInputStream(null);
33 ((ChannelExec)channel).setErrStream(System.err);
34
35 InputStream in=channel.getInputStream();
36 channel.connect();
37 byte[] tmp=new byte[1024];
38 while(true){
39 while(in.available()>0){
40 int i=in.read(tmp, 0, 1024);
41 if(i<0)break;
42 System.out.print(new String(tmp, 0, i));
43 }
44 if(channel.isClosed()){
45 System.out.println("exit-status: "+channel.getExitStatus());
46 break;
47 }
48 try{Thread.sleep(1000);}catch(Exception ee){}
49 }
50 channel.disconnect();
51 session.disconnect();
52 System.out.println("DONE");
53 }catch(Exception e){
54 e.printStackTrace();
55 }
56
57 }
58
59}
讓我知道如果你遇到任何問題,執行JSch示例程序. 它是一個相當直前的JSch的例子,以創建一個SSH連接的Java程序. 您可以下載JSch jar文件從其 官方網站。