钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读853218
首页 Linux 正文内容

使用jsch实现远程执行linux命令

钟逸 Linux 2025-05-16 05:28:14 11

jsch是一个Java SSH2客户端,可用于建立与远程Linux服务器的安全连接。通过jsch,可以远程执行Linux命令并获取命令的输出结果。本文章提供了使用jsch实现远程执行Linux命令的分步指南。

步骤1:依赖引入

在项目中引入jsch依赖:

yaml

com.jcraft

jsch

0.1.55

步骤2:建立连接

建立与远程Linux服务器的SSH连接:

java

import com.jcraft.jsch.JSch;

import com.jcraft.jsch.Session;

public class RemoteCommand {

public static void main(String[] args) throws Exception {

JSch jsch = new JSch();

Session session = jsch.getSession("username", "hostname", 22);

session.setPassword("password");

session.setConfig("StrictHostKeyChecking", "no");

session.connect();

}

}

步骤3:创建命令通道

在建立的SSH连接上创建命令通道:

java

import com.jcraft.jsch.Channel;

import com.jcraft.jsch.ChannelExec;

public class RemoteCommand {

public static void main(String[] args) throws Exception {

...

Channel channel = session.openChannel("exec");

((ChannelExec) channel).setCommand("ls -la");

channel.connect();

}

}

步骤4:执行命令并获取结果

执行命令并获取输出结果:

java

import com.jcraft.jsch.InputStream;

public class RemoteCommand {

public static void main(String[] args) throws Exception {

...

InputStream in = channel.getInputStream();

byte[] bytes = new byte[1024];

while (in.available() > 0) {

in.read(bytes);

System.out.println(new String(bytes));

}

}

}

步骤5:断开连接

执行完命令后断开SSH连接:

java

channel.disconnect();

session.disconnect();

通过使用jsch,可以远程连接Linux服务器并执行命令,从而实现自动化运维、远程部署等场景。具体实现步骤包括依赖引入、建立连接、创建命令通道、执行命令获取结果、断开连接。

文章目录
    搜索