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是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如Linux或Unix系统。下面我们将深入探讨如何使用JSCH进行远程服务器连接,并通过DEMO来学习这一过程。 首先,你需要在项目中引入JSCH库。...
在IT行业中,JavaScript SSH (JSch) 是一个广泛使用的Java库,它允许开发人员通过SSH协议与远程Linux服务器进行交互,包括执行SFTP(Secure File Transfer Protocol)操作。本篇文章将深入探讨JSch如何实现对Linux上...
4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch对象,然后创建一个Session(会话),并设置Session的配置属性。 5. 接着通过Session对象获取一个Channel(通道),并打开SFTP通道。此时可以利用...
jsch连接linux的工具包,公司一般用的就是这个jsch-0.1.54.jar包
本文将详细介绍如何使用JSCH库在Java中连接远程服务器并执行Linux命令。 首先,我们需要导入JSCH库。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.jcraft</groupId> ...
2. 连接Linux服务器 使用JSch创建一个新的Session对象,配置用户名、主机地址、端口号(默认22)以及密码或密钥对。然后调用`connect()`方法建立连接。 ```java import com.jcraft.jsch.*; public class SSHClient...
**使用JSCH连接远程Linux服务器** 在Java程序中,你可以使用JSCH库来实现以下步骤: 1. 创建`JSch`实例:`JSch jsch = new JSch();` 2. 设置用户认证信息,这可以是用户名和密码,或者公钥和私钥: - 密码认证:`...
在使用JSch时,开发者需要注意的是,正确配置SSH连接参数非常重要,尤其是对于认证方式的选择。使用密钥认证时,需要提供私钥文件路径,而使用密码认证则需要正确设置用户名和密码。此外,由于SSH协议的安全性要求,...
JSch是Java Secure Channel的缩写,它是一个纯Java实现的SSH2库,允许Java应用程序连接到支持SSH协议的服务器,进行安全的数据传输。在给定的标题"jsch0.1.55.jar_jsch0.1.53.jar"中,提到了两个不同版本的JSch库...
在UNIX和Linux操作系统上,SSH是一种广泛使用的安全通信协议,用于加密网络通信,防止中间人攻击。 JSCH库的核心功能包括: 1. **身份验证**:JSCH支持多种身份验证方法,包括密码、公钥/私钥对、键盘交互式认证等...
2. **执行远程命令**:通过建立的SSH连接,JSch可以执行远程主机上的shell命令,这对于远程监控和管理Linux设备尤其有用。 3. **文件传输**:JSch支持SFTP(SSH File Transfer Protocol),允许用户在本地和远程...
在Linux环境中,JSch库特别有用,因为Linux系统广泛使用SSH进行远程管理。开发者可以通过Java程序调用JSch库,实现自动化文件传输任务,比如持续集成流程中的代码部署、日志备份等。此外,由于JSch支持shell命令执行...
总的来说,"SFTP下载(JSch可跨服务器)"涉及的主要知识点包括SFTP协议的使用、JSch库的功能、SSH连接的建立与管理、SFTP会话的创建与操作,以及Java中的文件I/O。通过JSch,开发人员可以方便地在Java应用中实现安全...
通过这种方式,你可以使用Java程序(借助JSch库)安全地连接到远程Linux主机并执行shell脚本,获取其输出结果,这对于自动化运维或远程任务执行非常有用。在实际应用中,你可能还需要处理异常、优化连接超时时间以及...
综上所述,Java连接Linux主要有通过`Runtime`或`ProcessBuilder`执行命令行操作,以及使用第三方库如JSch进行SSH连接。选择哪种方法取决于具体需求,如需要简单快速的命令执行,`Runtime`和`ProcessBuilder`就足够了...
本节将详细介绍如何使用Java连接Linux,主要涉及以下几个核心知识点: 1. **Java SSH 客户端库**: - `JSch`:这是一个非常流行的Java SSH2库,用于实现Java程序中的SSH连接。它支持文件传输、命令执行、隧道创建...
下面是一个简单的JSCH连接SSH服务器并执行命令的例子: ```java import com.jcraft.jsch.*; public class JschExample { public static void main(String[] args) { JSch jsch = new JSch(); try { Session ...
总之,JSCH为Java开发者提供了强大且灵活的SSH功能,通过这个压缩包提供的库、源代码和文档,开发者可以轻松地将SSH连接和相关功能集成到他们的应用程序中,实现与Linux服务器的安全交互。无论是进行远程命令执行、...
`jsch-0.1.54` 是一个基于Java的开源库,主要用于实现SSH(Secure Shell)协议,它允许开发者通过Java程序远程连接到Linux服务器,执行命令、传输文件,甚至进行图形界面操作。SSH是一种网络协议,广泛应用于远程...