在 SSH Unix 服务器上运行 Shell 命令的 Java JSch 示例

今天我们将研究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文件從其 官方網站

Published At
Categories with 技术
Tagged with
comments powered by Disqus