服务器实现Java远程访问Linux服务器方式(JSch)

 更新时间:2024年11月30日 09:03:14   作者:inexaustible  
文章介绍了如何使用Java远程访问Linux服务器,主要包括建立SSH连接、使用JSch库执行命令、解析返回值以及关闭连接的步骤

服务器实现Java远程访问Linux服务器

要实现 Java 远程访问 Linux 服务器,首先要建立 SSH 连接。

SSH(Secure Shell)是一种强大的网络安全技术,可以在受信任的两台主机之间创建一条加密的连接,以保护数据进行传输。

一般来说,SSH服务器使用22端口,只要将服务器的 IP 地址及端口填入 SSH 客户端实现连接,就可以得到连接权限。

JSch是SSH2的纯Java实现 。

通过使用 jsch 开源库处理 SSH 连接,session 对象来发送指令并且解析返回值,以及最终关闭连接,可以实现 Java 程序和远程服务器之间的交互。

建立 SSH 连接之后,我们可以使用 Java 语言的相关的 API 来控制远程的 Linux 服务器,

具体的步骤如下:

1.使用jsch开源库负责SSH连接

来执行连接服务器:

// 创建 Jsch 实例
JSch jsch = new JSch();

// 指定服务器IP地址
String host = “172.16.3.15”;

// 设置SSH服务器端口,默认端口为22
int port = 22;

// 建立连接
Session session = jsch.getSession(user,host, port);

// 有密码设置密码无密码无需配置
session.setPassword("123");

// 解决用户不能远程登录
// session.setConfig("userauth.gssapi-with-mic", "no");
// 设置第一次登陆的时候提示,可选值:(ask | yes | no) 
// session.setConfig("StrictHostKeyChecking", "no");

2.使用session对象来发送指令至服务器

// 打开连接
session.connect();

// 10秒连接超时
// session.connect(10 * 1000);

// 执行指令
String command = “ls -lha”;
Channel channel =session.openChannel(“exec”);

// 设置指令
((ChannelExec) channel).setCommand(command);

// 接收数据
InputStream in = channel.getInputStream();

// 执行
channel.connect();

3.解析返回值

// 申明缓存区
byte[] tmp = new byte[1024];

// 将返回的数据放入缓存中
while(true){
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i
}
}

最后,关闭连接:

// 关闭连接
session.disconnect();
channel.disconnect();

或者执行Linux命令

String shell = "cd /home/test/check_tran/output && sudo rm -rf 19321 "; 
List<String> list = session.immediateShell2(shell); 
System.out.println(list.toString());
session.disconnect();

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java 程序设计总复习题(java基础代码)

    Java 程序设计总复习题(java基础代码)

    这篇文章主要介绍了Java 程序设计总复习题,主要是java基础代码,方便学习java的同学
    2021-05-05
  • Spring Boot Hello World的实现代码

    Spring Boot Hello World的实现代码

    这篇文章主要介绍了Spring Boot Hello World的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Spring Boot中YAML 配置文件常见问题及解决方案

    Spring Boot中YAML 配置文件常见问题及解决方案

    在Spring Boot项目中,配置文件是不可或缺的一部分,用于自定义应用行为、覆盖默认设置,本文给大家介绍SpringBoot中YAML配置文件的相关知识,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • NoHttpResponseException问题分析解决记录

    NoHttpResponseException问题分析解决记录

    这篇文章主要为大家介绍了NoHttpResponseException问题分析解决记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Java基础教程之String深度分析

    Java基础教程之String深度分析

    这篇文章主要给大家介绍了关于Java基础教程之String的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 关于通过java调用datax,返回任务执行的方法

    关于通过java调用datax,返回任务执行的方法

    今天小编就为大家分享一篇关于通过java调用datax,返回任务执行的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Spring相关知识点的总结与梳理

    Spring相关知识点的总结与梳理

    今天小编就为大家分享一篇关于Spring相关知识点的总结与梳理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Java + Selenium + OpenCV解决自动化测试中的滑块验证问题

    Java + Selenium + OpenCV解决自动化测试中的滑块验证问题

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,这篇文章主要介绍了Java + Selenium + OpenCV解决自动化测试中的滑块验证,需要的朋友可以参考下
    2022-07-07
  • SpringBoot模拟实现流式输出效果

    SpringBoot模拟实现流式输出效果

    这篇文章主要为大家详细介绍了如何使用SpringBoot模拟实现流式输出效果,并在前端使用流式接收数据并打印,感兴趣的小伙伴可以参考一下
    2025-03-03
  • SpringCloud使用集中配置组件Config规避信息泄露

    SpringCloud使用集中配置组件Config规避信息泄露

    项目应用中,数据库连接信息、Access-key、Secret-key等由于其及其敏感和特殊性,一旦泄露出去就很可能会使得应用遭到黑客攻击,例如数据库账号密码泄露可能导致“拖库”,甚至数据丢失。此等事件偶有发生,那么,在分布式微服务项目中,怎么避免这种情况呢
    2022-07-07

最新评论