java使用ssh连接Linux并执行命令

原创 2016年08月29日 18:47:20

需依赖jcraft的jar包。可自行下载或者通过maven下载。

maven pom.xml配置:

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

java代码如下:

import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;

import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;

public class SSHLinux {

	public static void main(String[] args) throws IOException, JSchException {
		// TODO Auto-generated method stub
		String host = "172.19.28.253";
		int port = 22;
		String user = "root";
		String password = "123456";
		String command = "whatweb --output-xml http://216.139.147.75:443/";
		String res = exeCommand(host,port,user,password,command);

		System.out.println(res);
		
	}
	
	
public static String exeCommand(String host, int port, String user, String password, String command) throws JSchException, IOException {
        
        JSch jsch = new JSch();
        Session session = jsch.getSession(user, host, port);
        session.setConfig("StrictHostKeyChecking", "no");
    //    java.util.Properties config = new java.util.Properties();
     //   config.put("StrictHostKeyChecking", "no");
        
        session.setPassword(password);
        session.connect();
        
        ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
        InputStream in = channelExec.getInputStream();
        channelExec.setCommand(command);
        channelExec.setErrStream(System.err);
        channelExec.connect();
        String out = IOUtils.toString(in, "UTF-8");
        
        channelExec.disconnect();
        session.disconnect();
        
        return out;
    }

}


用JAVA调用SSH命令

 (1)       SSH命令使用手册SSH 的详细使用方法如下:ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afg...
  • fishyqd
  • fishyqd
  • 2006年08月17日 14:29
  • 12208

纯JAVA实现远程执行SSH2主机的SHELL命令

纯JAVA实现远程执行SSH2主机的SHELL命令 /** * 利用JSch包实现远程主机SHELL命令执行 * @param ip 主机IP * @param user 主...
  • supuncleus
  • supuncleus
  • 2016年10月23日 16:20
  • 4355

在Linux操作系统下安装JAVA8

原文地址:http://happyshome.cn/blog/deploy/java.html 本篇文章会介绍如何在Linux操作系统上安装和更新JAVA8。 ...
  • libingxin
  • libingxin
  • 2016年04月11日 11:09
  • 9857

Java调用Linux命令

  • 2011年12月12日 22:09
  • 5KB
  • 下载

Java程序执行Linux命令

java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个...
  • a19881029
  • a19881029
  • 2012年10月12日 17:38
  • 117432

java 连接Linux服务器并执行指令

直接上代码、 /** * Created by hpp on 2017/6/5. */ import ch.ethz.ssh2.Connection; import ch.ethz.ssh2...
  • hpp1314520
  • hpp1314520
  • 2017年06月08日 15:15
  • 2261

Linux下搭建Java环境变量并实现第一个Java小程序

1.首先,我们打开虚拟机里面的Linux操作系统,然后点击下图菜单下的虚拟机选项: 在点击虚拟机下的设置菜单,如下图所示: 这里我已经添加进去我所需要的文件夹了,我放在本机E盘下的as文件夹里面到...
  • u012561176
  • u012561176
  • 2015年04月19日 11:22
  • 2293

Linux使用Java编程

  • 2008年03月17日 21:35
  • 870KB
  • 下载

java通过ssh连接服务器执行shell命令

/** *@author StormMa *@date 2017-01-11 *@describe login linux server by ssh */ 生命不息,奋斗不止! JSch 是S...
  • StromMaybin
  • StromMaybin
  • 2017年01月11日 23:20
  • 4915

Java通过SSH连接Linux服务器

Java通过SSH连接Linux服务器 Window系统连接Linux服务器一般情况下需要使用Xshell去连接,但是如果只是执行一个简单并且重复的命令时,使用Xshell就显得大材小用了,并且操作...
  • u014234061
  • u014234061
  • 2016年05月18日 17:05
  • 10189
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java使用ssh连接Linux并执行命令
举报原因:
原因补充:

(最多只允许输入30个字)