JSch SSH2 for Java
参考
https://www.jianshu.com/p/ede91b0b8495
依赖
com.jcraft jsch 0.1.55
代码
package com.controller;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.Properties;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ssh2 {
public static void main(String[] args) throws Exception {
JSch jsch = new JSch(); // 创建JSch对象
String userName = “root”;// 用户名
String password = “111111”;// 密码
String host = “192.168.3.157”;// 服务器地址
int port = 22;// 端口号
String cmd = "yum install screen -y ";// 要运行的命令
Session session = jsch.getSession(userName, host, port); // 根据用户名,主机ip,端口获取一个Session对象
session.setPassword(password); // 设置密码
Properties config = new Properties();
config.put(“StrictHostKeyChecking”, “no”);
session.setConfig(config); // 为Session对象设置properties
int timeout = 60000000;
session.setTimeout(timeout); // 设置timeout时间
session.connect(); // 通过Session建立链接
ChannelExec channelExec = (ChannelExec) session.openChannel(“exec”);
channelExec.setCommand(cmd);
channelExec.setInputStream(null);
channelExec.setErrStream(System.err);
channelExec.connect();
InputStream in = channelExec.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forName(“UTF-8”)));
String buf = null;
StringBuffer sb = new StringBuffer();
while ((buf = reader.readLine()) != null) {
sb.append(buf);
System.out.println(buf);// 打印控制台输出
}
reader.close();
channelExec.disconnect();
if (null != session) {
session.disconnect();
}
}
}
JSch远程执行shell命令的两种方法
https://www.qycn.com/xzx/article/2487.html
exec通道和shell通道之间重要的区别:shell通道将建立shell环境,例如环境变量,而exec通道则不会。
对于ChannelShell,输入流提供这些命令的命令和输入。这就像在本地计算机上使用交互式shell一样。 (它通常仅用于此:交互式使用。)
对于ChannelExec,命令被给予与connect()之前set命令(),并且将输入流将被发送到这些命令作为输入。 (大多数情况下,你将有只有一个命令,但您可以提供使用正常的外壳分离&,&&,|,||,;,换行,复合命令多的。)这就像在本地计算机上执行的shell脚本。 (当然,如果其中一个命令本身是交互式shell,则其行为类似于ChannelShell。)
还有第三个类似的,ChannelSubsystem,它执行ssh服务器的子系统 - 这里服务器的配置决定做什么,而不是远程用户的shell。 (最常用的子系统是sftp,但为此,JSch提供了一个了解协议的专用通道。)
JSch SSH2 for Java相关推荐
- JSch:纯JAVA实现远程执行SSH2主机的SHELL命令
http://txy821.iteye.com/blog/1405230 http://my.oschina.net/hetiangui/blog/137426 上篇文章我编写了利用JSch实现SFT ...
- SSH客户端开发开源组件Ganymed SSH-2 for Java初体验
1.Ganymed SSH-2 for Java Ganymed SSH-2 for Java是一个纯Java实现的SHH2库. 看官方介绍: Ganymed SSH-2 for Java is a ...
- java sftpv3client_Ganymed SSH-2 for Java系列8之SFTPv3Client说明
Ganymed SSH-2 for Java系列8之SFTPv3Client说明: SFTPv3Client是SSH for java的一个SFTP(协议版本 3), 客户端通过SSH-2连接的一个简 ...
- Ganymed SSH-2 for Java系列11之SCPClient
Ganymed SSH-2 for Java系列11之SCPClient SCPClient是一个基本的java操作类,其可以从服务器复制文件到SSH-2服务器,或者从服务器上scp出文件到本地服务器 ...
- java ganymed ssh2_Ganymed SSH-2 for Java学习笔记
Ganymed SSH-2 for Java 是什么 Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包.可以利用它直接在Java程序中连接SSH服务器.官网地址为 ...
- ganymed ssh-2 for java_Ganymed SSH-2 for Java
Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...
- ganymed ssh-2 for java,SSH客户端开发开源组件Ganymed SSH-2 for Java初体验,ganymedssh-2
SSH客户端开发开源组件Ganymed SSH-2 for Java初体验,ganymedssh-2 1.Ganymed SSH-2 for Java Ganymed SSH-2 for Java是一 ...
- 浅谈Jsch SSH2
Jsch – Pure Java implementation of SSH2 Home AboutGuestbookCategoriesTagsLinksSubscribe 原文地址:http:// ...
- ganymed ssh-2 for java,用于java连接问题的Ganymed SSH(Ganymed SSH for java connect issue)
用于java连接问题的Ganymed SSH(Ganymed SSH for java connect issue) 我们正在使用Ganymed-SSH库并在与另一台机器进行SSH时遇到此错误. [r ...
最新文章
- vs2008中,创建基于对话框的mfc动态库步骤
- angr学习笔记(6)(内存地址单元符号化)
- springboot上传文件及文件上传限制大小异常捕获
- git 代码回滚_能提交到远程的Git回滚
- python自动化入门操作文档,写得如此清晰明了,忍不住让人点赞
- 论重写和里式替换原则(LSP)
- 快速傅立叶变换_FFT
- 2018年3月11日论文阅读
- 极速pdf android,极速PDF阅读器 V3.0.0.2003 官方版[安卓软件]
- albers投影转WGS84坐标格式,读.shp.dbf文件,获取文件字符集工具类。
- 可牛影像动感渐隐闪图教程
- html5画图论文结束语,基于HTML5 Canvas画图软件的设计与实现.doc
- 微信小程序之订阅消息之PHP。
- Xilinx公司的Vivado 2022.2版本在Windows和Linux系统上的下载配置教程
- 面试-Senior Specialist for Devops-车企
- python抖音粉丝_告别刷抖音!30秒一个Python小例子,总有一款适合你
- Pygame合集】回忆杀-“童年游戏”,看看你中几枪?(附五款源码自取)
- Python 于 webgame 的应用(下)
- MusicBox - 仿千千静听
- Python7.3 练一练
热门文章
- uniapp - 打包(App、H5)
- 创建oracle的表空间
- Java指令-Djava.ext.dirs的陷阱
- 【C语言刷题训练】——————一元二次方程
- 点云 3D 目标跟踪 - SimTrack: Exploring Simple 3D Multi-Object Tracking for Autonomous Driving(ICCV 2021)
- nfc标签 方案 防伪_酒类NFC防伪解决方案
- python——面向对象的三大特性:封装,继承,多态
- ZOJ Monthly, January 2019 - A 规律
- python赋值法例子_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...
- 解决Maven安装Tomcat插件后,使用出现8080端口占用的问题