`

JSch 使用

    博客分类:
  • Java
 
阅读更多

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/

 

 

 

分享到:
评论

相关推荐

    java使用JSCH进行连接远程服务器Demo

    Java使用JSCH(Java Secure Channel)库连接远程服务器是一个常见的任务,特别是在自动化运维、文件传输或者执行远程命令等场景中。JSCH是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如...

    jsch-0.1.43

    5. **通道概念**:JSch使用Channel接口实现不同类型的SSH通道,包括Session Channel(用于执行命令)、SFTP Channel(用于文件传输)和Port Forwarding Channel(用于端口转发)。 6. **错误处理和调试**:在使用...

    jsch_jsch jsch_jsch jsch_jsch

    6. **错误处理**:在使用JSCH过程中,可能出现各种异常,如连接超时、认证失败等,JSCH提供了丰富的异常处理机制,帮助开发者更好地识别和解决这些问题。 `jzlib` 是一个Java实现的ZLIB压缩库,它实现了GZIP和...

    jsch-0.1.54-API文档-中文版.zip

    赠送jar包:jsch-0.1.54.jar; 赠送原API文档:jsch-0.1.54-javadoc.jar; 赠送源代码:jsch-0.1.54-sources.jar; 赠送Maven依赖信息文件:jsch-0.1.54.pom; 包含翻译后的API文档:jsch-0.1.54-javadoc-API文档-...

    JSCH免费下载啦

    **JSCH库的使用** JSCH库包含了一系列的类和接口,用于构建SSH连接。以下是一些关键的类: 1. `com.jcraft.jsch.Session`:这是建立SSH连接的基础,包含了设置用户名、密码、主机、端口等信息的方法,并可以创建和...

    jsch0.1.55.jar_jsch0.1.53.jar

    JSch的更新版本可能包含了对这个问题的修复,使得用户在使用新版本时能够避免遇到此类异常。 "Algorithm negotiation fail"异常通常是由于服务器和客户端支持的加密算法不匹配导致的。SSH2协议允许双方在建立连接时...

    jsch的jar包

    要使用这个库,开发者需要将"jsch.jar"添加到项目的类路径中,并按照JSCH的API文档编写相应的代码来实现SFTP操作。 总结来说,JSCH是Java平台上的一个强大工具,它使开发人员能够方便地集成SSH2协议,尤其是实现...

    jsch实现sftp文件上传、下载 ,jsch jar

    JSch jsch = new JSch(); session = jsch.getSession("username", "hostname", 22); session.setPassword("password"); // 如果使用密钥对,注释掉上面一行,然后设置以下两行 // String privateKeyPath = ...

    jsch版本50-53.rar

    使用JSCH进行SFTP操作时,它提供了连接到远程主机的能力,执行文件的上传、下载、重命名、删除等操作。SFTP是SSH的一部分,提供了一种安全的文件传输方式,比传统的FTP更安全,因为所有的数据都是加密的,而且身份...

    详解Java使用Jsch与sftp服务器实现ssh免密登录

    以下是使用publickey认证方式的示例代码: ```java // 从配置文件中读取目标服务器ip、端口、用户名、私钥路径 String ftpHost = prop.getProperty("downloadHost"); String port = prop.getProperty(...

    JSCH0.1.46

    - **安全性**:使用JSCH时,应确保遵循最佳安全实践,如定期更新私钥,避免明文密码,以及合理使用端口转发以防止潜在的安全风险。 JSCH库是Java开发者进行SSH连接的强大工具,它简化了与远程系统进行安全通信的...

    JSCH执行命令是输入密码的方法

    在IT领域,JavaScript Secure Channel (JSCH) 是一个非常实用的Java库,它允许开发者在Java应用程序中实现Secure Shell (SSH) ...同时,理解SSH协议和JSCH的使用方法,将有助于开发更高效、安全的远程操作解决方案。

    jsch-0.1.54.zip

    JSch库的版本0.1.54是我们关注的重点,这个版本包含了源代码和示例程序,可以帮助开发者深入理解如何使用该库进行安全通信。 ### SSH2协议介绍 SSH(Secure Shell)是一种网络协议,用于安全地在不安全的网络上...

    jsch API文档

    在使用JSch API时,首先需要创建`JSch`实例,并通过`Session.connect()`方法建立到远程主机的连接。这通常涉及到设置主机名、端口号、用户名和密码或密钥对。例如: ```java JSch jsch = new JSch(); Session ...

    jsch-0.1.55.jar 包

    在Java程序中,你可以使用JSCH库来实现以下步骤: 1. 创建`JSch`实例:`JSch jsch = new JSch();` 2. 设置用户认证信息,这可以是用户名和密码,或者公钥和私钥: - 密码认证:`Properties config = new ...

    jsch-0.1.55_jsch_JSCH0.1._55_服务器_jsch0.1.55_

    JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的 程序中。同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器

    可用的jsch-0.1.54.jar

    在Java项目中使用JSCH,首先需要将jsch-0.1.54.jar添加到项目的类路径中。接着,可以通过创建`com.jcraft.jsch.Session`对象来建立与远程主机的SSH连接,设置用户名、密码或密钥对进行身份验证。一旦连接建立,可以...

    jsch-0.1.54-API文档-中英对照版.zip

    赠送jar包:jsch-0.1.54.jar; 赠送原API文档:jsch-0.1.54-javadoc.jar; 赠送源代码:jsch-0.1.54-sources.jar; 赠送Maven依赖信息文件:jsch-0.1.54.pom; 包含翻译后的API文档:jsch-0.1.54-javadoc-API文档-...

    com.jcraft.jsch

    在使用jsch库前,我们需要了解一些基本概念。SSH连接通常涉及以下几个步骤: 1. **身份验证**:客户端通过公钥/私钥对或密码方式与服务器进行身份验证。jsch库支持这些认证方式,开发者可以根据实际需求选择合适的...

    使用jsch中的ChannelSftp上传文件和文件夹[参考].pdf

    使用 JSCH 中的 ChannelSftp 上传文件和文件夹 JSCH(Java Secure Channel)是一款自由和开源的 Java 库,提供了安全的通信通道,包括 SSH、SFTP、SCP 等协议。 ChannelSftp 是 JSCH 中的一个实现 SFTP 协议的 ...

Global site tag (gtag.js) - Google Analytics