JSch 使用

JSCH是一个纯粹的用java实现SSH功能的java  library. 官方地址为:http://www.jcraft.com/jsch/

备注: SSH是一个安全协议,用来在不同系统或者服务器之间进行安全连接。

          SSH在连接和传送的过程中会加密所有的数据

Mvn引用:

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

一, 特点

   1,  基于DSA和RSA加密。

    2, 可以实现4中认证机制。分别是:

        (1i): password

        (2i): publickey(DSA,RSA)

        (3i): keyboard-interactive

         (4i): gss-api-with-mic

    3.生成public/private key pair.

    4.执行bash script 等脚本

    5.可以通过HTTP/SOCK5 proxy

    6.支持常见SSH1协议和SSH2协议

二, demo

     参数说明:

         user:所连接的Linux主机登录时的用户名
         password:登录密码
         server:主机地址
        serverport: 端口号,默认为22

public String exeCommand(String host, int port, String user,
			String password, String command, ByteArrayOutputStream baos)
			throws JSchException, IOException {

		JSch jsch = new JSch();
		Session session = jsch.getSession(user, host, port);
		session.setConfig("StrictHostKeyChecking", "no");
		session.setPassword(password);
		session.connect();

		ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
		InputStream in = channelExec.getInputStream();
		channelExec.setCommand(command);
		channelExec.setErrStream(baos);
		channelExec.connect();
		String out = IOUtils.toString(in, "UTF-8");

		channelExec.disconnect();
		session.disconnect();
		return out;
	}

  

ByteArrayOutputStream baos = new ByteArrayOutputStream();
		String out = "";
		try {
			out = exeCommand(FILESERVER, FILESERVERPORT, FILESERVERUSER, FILESERVERPASSWORD, command, baos);
		} catch (JSchException e) {
			flag = "E";
		} catch (IOException e) {
			flag = "E";
		}
		String err = baos.toString();
		
		if (!err.isEmpty()) {
			String[] errors = err.split("\n");
			for (String error : errors) {
				System.out.println("error=" + error);
			}
			if (errors.length == files.length) {
				flag = "E";
			} else {
				flag = "Y";
			}
		}
		System.out.println("=================share end==================");
		return flag;

  

 更多示例: http://www.jcraft.com/jsch/examples/

猜你喜欢

转载自ldaolong.iteye.com/blog/2406469