参考

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相关推荐

  1. JSch:纯JAVA实现远程执行SSH2主机的SHELL命令

    http://txy821.iteye.com/blog/1405230 http://my.oschina.net/hetiangui/blog/137426 上篇文章我编写了利用JSch实现SFT ...

  2. 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 ...

  3. java sftpv3client_Ganymed SSH-2 for Java系列8之SFTPv3Client说明

    Ganymed SSH-2 for Java系列8之SFTPv3Client说明: SFTPv3Client是SSH for java的一个SFTP(协议版本 3), 客户端通过SSH-2连接的一个简 ...

  4. Ganymed SSH-2 for Java系列11之SCPClient

    Ganymed SSH-2 for Java系列11之SCPClient SCPClient是一个基本的java操作类,其可以从服务器复制文件到SSH-2服务器,或者从服务器上scp出文件到本地服务器 ...

  5. java ganymed ssh2_Ganymed SSH-2 for Java学习笔记

    Ganymed SSH-2 for Java 是什么 Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包.可以利用它直接在Java程序中连接SSH服务器.官网地址为 ...

  6. 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月,在用之前,请仔细 ...

  7. 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是一 ...

  8. 浅谈Jsch SSH2

    Jsch – Pure Java implementation of SSH2 Home AboutGuestbookCategoriesTagsLinksSubscribe 原文地址:http:// ...

  9. 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 ...

最新文章

  1. vs2008中,创建基于对话框的mfc动态库步骤
  2. angr学习笔记(6)(内存地址单元符号化)
  3. springboot上传文件及文件上传限制大小异常捕获
  4. git 代码回滚_能提交到远程的Git回滚
  5. python自动化入门操作文档,写得如此清晰明了,忍不住让人点赞
  6. 论重写和里式替换原则(LSP)
  7. 快速傅立叶变换_FFT
  8. 2018年3月11日论文阅读
  9. 极速pdf android,极速PDF阅读器 V3.0.0.2003 官方版[安卓软件]
  10. albers投影转WGS84坐标格式,读.shp.dbf文件,获取文件字符集工具类。
  11. 可牛影像动感渐隐闪图教程
  12. html5画图论文结束语,基于HTML5 Canvas画图软件的设计与实现.doc
  13. 微信小程序之订阅消息之PHP。
  14. Xilinx公司的Vivado 2022.2版本在Windows和Linux系统上的下载配置教程
  15. 面试-Senior Specialist for Devops-车企
  16. python抖音粉丝_告别刷抖音!30秒一个Python小例子,总有一款适合你
  17. Pygame合集】回忆杀-“童年游戏”,看看你中几枪?(附五款源码自取)
  18. Python 于 webgame 的应用(下)
  19. MusicBox - 仿千千静听
  20. Python7.3 练一练

热门文章

  1. uniapp - 打包(App、H5)
  2. 创建oracle的表空间
  3. Java指令-Djava.ext.dirs的陷阱
  4. 【C语言刷题训练】——————一元二次方程
  5. 点云 3D 目标跟踪 - SimTrack: Exploring Simple 3D Multi-Object Tracking for Autonomous Driving(ICCV 2021)
  6. nfc标签 方案 防伪_酒类NFC防伪解决方案
  7. python——面向对象的三大特性:封装,继承,多态
  8. ZOJ Monthly, January 2019 - A 规律
  9. python赋值法例子_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...
  10. 解决Maven安装Tomcat插件后,使用出现8080端口占用的问题