服务器实现Java远程访问Linux服务器方式(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();
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
注解@TableName,@TableField,pgsql的模式对应方式
这篇文章主要介绍了注解@TableName,@TableField,pgsql的模式对应方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-04-04
详解IDEA中类加载器调用getResourceAsStream()方法需注意的问题
这篇文章主要介绍了详解IDEA中类加载器调用getResourceAsStream()方法需注意的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-02-02
Spring Boot项目中定制PropertyEditors方法
在本篇文章里小编给大家分享的是一篇关于Spring Boot定制PropertyEditors的知识点内容,有需要的朋友们可以参考学习下。2019-11-11


最新评论