ToB企服应用市场:ToB评测及商务社交产业平台
标题:
服务器实现Java长途访问Linux服务器(JSch)
[打印本页]
作者:
美食家大橙子
时间:
2024-8-28 20:51
标题:
服务器实现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();
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4