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

要实现 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();
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值