Java JSch在SSH Unix上运行shell命令的示例

可以使用JSch在java中创建SSH连接。如果有了解连接SSH服务器上的远程数据库的程序则应该有助于学习本文中的内容。 本文将演示如何连接启用SSH的服务器并执行shell命令。使用JSch从java程序连接到远程ssh服务器。

从它的官方网站下载JSch jar。还可以使用maven依赖项获取JSch jar。

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

下面是一个简单的JSch示例程序。

 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在java程序中创建SSH连接的非常简单的例子。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264070.html

(0)
上一篇 2022年6月6日
下一篇 2022年6月6日

相关推荐

发表回复

登录后才能评论