`

使用 jsch 连接linux

 
阅读更多
1:首先添加maven 依赖
 
 <dependency>
	<groupId>com.jcraft</groupId>
	<artifactId>jsch</artifactId>
	<version>0.1.48</version>
</dependency>

使用密码 方式连接 linux
public static String exec(String host, String user, String psw, int port,
			String command) {
		String result = "";
		Session session = null;
		ChannelExec openChannel = null;
		try {
			JSch jsch = new JSch();
			session = jsch.getSession(user, host, port);
			session.setPassword(psw.getBytes());
			java.util.Properties config = new java.util.Properties();
			config.put("StrictHostKeyChecking", "no");
			session.setConfig(config);
			session.connect();
			openChannel = (ChannelExec) session.openChannel("exec");
			openChannel.setCommand(command);
			int exitStatus = openChannel.getExitStatus();
			System.out.println(exitStatus);
			openChannel.connect();
			InputStream in = openChannel.getInputStream();
			BufferedReader reader = new BufferedReader(
					new InputStreamReader(in));
			String buf = null;
			while ((buf = reader.readLine()) != null) {
				result += new String(buf.getBytes("gbk"), "UTF-8")
						+ "    <br>\r\n";
			}
		} catch (JSchException | IOException e) {
			e.printStackTrace();
			result += e.getMessage();
		} finally {
			if (openChannel != null && !openChannel.isClosed()) {
				openChannel.disconnect();
			}
			if (session != null && session.isConnected()) {
				session.disconnect();
			}
		}
		return result;
	}
	String exec = exec("192.168.80.101", "root", "111", 22,"sleep 2;ls;");

使用 秘钥方式  连接linux
public static String exec1(String ip, String user, int port,
			String privateKey, String passphrase, String command) {
		String result = "";
		Session session = null;
		ChannelExec openChannel = null;
		try {
			JSch jsch = new JSch();
			jsch.addIdentity(privateKey);
			session = jsch.getSession(user, ip, port);
		
			java.util.Properties config = new java.util.Properties();
			config.put("StrictHostKeyChecking", "no");
			session.setConfig(config);
			session.connect();
			openChannel = (ChannelExec) session.openChannel("exec");
			openChannel.setCommand(command);
			int exitStatus = openChannel.getExitStatus();
			System.out.println(exitStatus);
			openChannel.connect();
			InputStream in = openChannel.getInputStream();
			BufferedReader reader = new BufferedReader(
					new InputStreamReader(in));
			String buf = null;
			while ((buf = reader.readLine()) != null) {
				result += new String(buf.getBytes("gbk"), "UTF-8")
						+ "    <br>\r\n";
			}
		} catch (JSchException | IOException e) {
			e.printStackTrace();
			result += e.getMessage();
		} finally {
			if (openChannel != null && !openChannel.isClosed()) {
				openChannel.disconnect();
			}
			if (session != null && session.isConnected()) {
				session.disconnect();
			}
		}
		return result;
	}
  
String result=exec1("192.168.80.101", "root", 22,"C:\\Users\\ebnew\\Desktop\\office-key(1)", "", "sleep 2;ls;");
分享到:
评论

相关推荐

    jsch连接linux例子

    这里是我使用jsch连接linux并且执行相关命令的案例,希望对你有所帮助。

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

    JSCH是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如Linux或Unix系统。下面我们将深入探讨如何使用JSCH进行远程服务器连接,并通过DEMO来学习这一过程。 首先,你需要在项目中引入JSCH库。...

    JSch对linux上文件的操作

    在IT行业中,JavaScript SSH (JSch) 是一个广泛使用的Java库,它允许开发人员通过SSH协议与远程Linux服务器进行交互,包括执行SFTP(Secure File Transfer Protocol)操作。本篇文章将深入探讨JSch如何实现对Linux上...

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

    4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch对象,然后创建一个Session(会话),并设置Session的配置属性。 5. 接着通过Session对象获取一个Channel(通道),并打开SFTP通道。此时可以利用...

    jsch-0.1.54.jar源码包

    jsch连接linux的工具包,公司一般用的就是这个jsch-0.1.54.jar包

    Java中通过jsch来连接远程服务器执行linux命令

    本文将详细介绍如何使用JSCH库在Java中连接远程服务器并执行Linux命令。 首先,我们需要导入JSCH库。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;com.jcraft&lt;/groupId&gt; ...

    java通过代码登录远程linux服务器并执行linux命令源码以及jar包

    2. 连接Linux服务器 使用JSch创建一个新的Session对象,配置用户名、主机地址、端口号(默认22)以及密码或密钥对。然后调用`connect()`方法建立连接。 ```java import com.jcraft.jsch.*; public class SSHClient...

    jsch-0.1.55.jar 包

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

    jsch的jar包,包含0.1.51,0.1.52,0.1.53,0.1.54等这几个版本

    在使用JSch时,开发者需要注意的是,正确配置SSH连接参数非常重要,尤其是对于认证方式的选择。使用密钥认证时,需要提供私钥文件路径,而使用密码认证则需要正确设置用户名和密码。此外,由于SSH协议的安全性要求,...

    jsch0.1.55.jar_jsch0.1.53.jar

    JSch是Java Secure Channel的缩写,它是一个纯Java实现的SSH2库,允许Java应用程序连接到支持SSH协议的服务器,进行安全的数据传输。在给定的标题"jsch0.1.55.jar_jsch0.1.53.jar"中,提到了两个不同版本的JSch库...

    JSCH0.1.46

    在UNIX和Linux操作系统上,SSH是一种广泛使用的安全通信协议,用于加密网络通信,防止中间人攻击。 JSCH库的核心功能包括: 1. **身份验证**:JSCH支持多种身份验证方法,包括密码、公钥/私钥对、键盘交互式认证等...

    jcraft-jsch.zip

    2. **执行远程命令**:通过建立的SSH连接,JSch可以执行远程主机上的shell命令,这对于远程监控和管理Linux设备尤其有用。 3. **文件传输**:JSch支持SFTP(SSH File Transfer Protocol),允许用户在本地和远程...

    jsch-0.1.55.jar java语言linux系统文件安全传输工具包 - 亲测可用,请放心下载

    在Linux环境中,JSch库特别有用,因为Linux系统广泛使用SSH进行远程管理。开发者可以通过Java程序调用JSch库,实现自动化文件传输任务,比如持续集成流程中的代码部署、日志备份等。此外,由于JSch支持shell命令执行...

    SFTP下载(JSch可跨服务器)

    总的来说,"SFTP下载(JSch可跨服务器)"涉及的主要知识点包括SFTP协议的使用、JSch库的功能、SSH连接的建立与管理、SFTP会话的创建与操作,以及Java中的文件I/O。通过JSch,开发人员可以方便地在Java应用中实现安全...

    如何用java程序(JSch)运行远程linux主机上的shell脚本

    通过这种方式,你可以使用Java程序(借助JSch库)安全地连接到远程Linux主机并执行shell脚本,获取其输出结果,这对于自动化运维或远程任务执行非常有用。在实际应用中,你可能还需要处理异常、优化连接超时时间以及...

    java 连接linux俩种方式

    综上所述,Java连接Linux主要有通过`Runtime`或`ProcessBuilder`执行命令行操作,以及使用第三方库如JSch进行SSH连接。选择哪种方法取决于具体需求,如需要简单快速的命令执行,`Runtime`和`ProcessBuilder`就足够了...

    java连接linux

    本节将详细介绍如何使用Java连接Linux,主要涉及以下几个核心知识点: 1. **Java SSH 客户端库**: - `JSch`:这是一个非常流行的Java SSH2库,用于实现Java程序中的SSH连接。它支持文件传输、命令执行、隧道创建...

    jsch源码和jar包.rar

    下面是一个简单的JSCH连接SSH服务器并执行命令的例子: ```java import com.jcraft.jsch.*; public class JschExample { public static void main(String[] args) { JSch jsch = new JSch(); try { Session ...

    jsch-0.1.55jar&&javadoc&&sources.zip

    总之,JSCH为Java开发者提供了强大且灵活的SSH功能,通过这个压缩包提供的库、源代码和文档,开发者可以轻松地将SSH连接和相关功能集成到他们的应用程序中,实现与Linux服务器的安全交互。无论是进行远程命令执行、...

    jsch-0.1.54

    `jsch-0.1.54` 是一个基于Java的开源库,主要用于实现SSH(Secure Shell)协议,它允许开发者通过Java程序远程连接到Linux服务器,执行命令、传输文件,甚至进行图形界面操作。SSH是一种网络协议,广泛应用于远程...

Global site tag (gtag.js) - Google Analytics