JAVA通过SSH连接Ubuntu虚拟机执行linux指令

JAVA通过SSH连接Ubuntu虚拟机执行linux指令

废话不说,直接上代码

import com.jcraft.jsch.*;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class RemoteShellExecutor {

    private String ipAddress;
    private String username;
    private String password;

    public RemoteShellExecutor(String ipAddress, String username, String password) {
        this.ipAddress = ipAddress;
        this.username = username;
        this.password = password;
    }

    public String executeCommand(String command) throws Exception {
        JSch jsch = new JSch();
        Session session = jsch.getSession(username, ipAddress, 22);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        session.connect();

        Channel channel = session.openChannel("exec");
        ((ChannelExec) channel).setCommand(command);

        InputStream in = channel.getInputStream();
        channel.connect();

        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String output = "";
        String line;

        while ((line = reader.readLine()) != null) {
            output += line + "\n";
        }

        reader.close();

        channel.disconnect();
        session.disconnect();

        return output;
    }

    public static void main(String[] args) throws Exception {
        RemoteShellExecutor executor = new RemoteShellExecutor("192.168.1.1", "username", "password");
        String output = executor.executeCommand("ls -l");
        System.out.println(output);
    }
}

注意:
要创建Maven项目,具体可以自己搜索,然后添加依赖关系

<dependencies>
    <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.55</version>
    </dependency>
</dependencies>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值