需要引入ganymed-ssh2-build210.jar包。

其实很简单。所以直接贴代码,代码说话。

package com.eshore.framework.util;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import ch.ethz.ssh2.log.Logger;
/*** shell脚本调用类* @author clear**/
public class SshBasic{//连接,登陆public Connection login(String hostname,int port,String username,String password){//获取连接Connection conn = new Connection(hostname, port);try {//连接
            conn.connect();//输入账号密码登陆boolean isAuthenticated = conn.authenticateWithPassword(username, password);//登陆失败,返回错误if(isAuthenticated == false){throw new IOException("isAuthentication failed.");}} catch (IOException e) {e.printStackTrace();}return conn;}//获取Sessionpublic Session getSession(Connection conn){Session sess = null;try {sess = conn.openSession();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}return sess;}//获取控制台打印信息public String printCmd(String path,Connection conn,Session sess, String date, String city){String txt = "";try {sess.execCommand("chmod 755 "+path+" && "+path+" "+date+" "+city);//打印信息InputStream stdout = new StreamGobbler(sess.getStdout());//打印错误InputStream stderr = new StreamGobbler(sess.getStderr());BufferedReader brout = new BufferedReader(new InputStreamReader(stdout,"UTF-8"));BufferedReader brerr = new BufferedReader(new InputStreamReader(stderr,"UTF-8"));while(true){String line = brout.readLine();if(line==null){break;}txt += line+"<br/>";System.out.println(line);}while(true){String line = brerr.readLine();if(line==null){break;}txt += line+"<br/>";System.out.println(line);}} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}return txt;}public static void main(String[] args) {SshBasic m = new SshBasic();//连接并登陆Connection conn = m.login("132.122.1.51", 22, "srglweb", "srglweb123");//获取SessionSession sess = m.getSession(conn);//获取控制台信息String cmd = m.printCmd("shelltest/two.sh", conn,sess,"20140905","200");System.out.println("cmd:"+cmd);System.out.println("--->"+sess);//判断会话是否成功int result = sess.getExitStatus();//如果成功返回0System.out.println("result:"+result);sess.close();conn.close();}}

转载于:https://www.cnblogs.com/cxxjohnson/p/7163118.html

使用ganymed工具调用ssh2相关推荐

  1. 使用 ganymed 工具远程登录资源执行脚本命令

    使用 ganymed 工具远程登录资源执行脚本命令 依赖:ganymed-ssh2-262.jar package com.zxl.ganymed;import ch.ethz.ssh2.Connec ...

  2. Windows 常用快捷键 + word常用快捷键 +常用工具调用

    windows常用快捷键(这里特指Windows 10) CTRL+X 剪切 Alt+Tab 不同程序间切换(+Shift反向切换) CTRL+C 复制 Ctrl+Tab 同一程序 间不同窗口切换 C ...

  3. 关于使用selenium工具调用Firefox浏览器登录淘宝、京东web端的试验

    ** 关于使用selenium工具调用Firefox浏览器登录淘宝.京东web端的试验 ** 1.环境配置(软件安装相关知识大家可在网上查找) 以下是我使用的版本: Firefox 24.0 sele ...

  4. 使用Chrome开发者工具调用REST接口(附图)

    以下演示如何使用Chrome开发者工具调用REST接口: fetch('/posts', {method: 'POST',body: JSON.stringify({title: 'foo',body ...

  5. autoCaptcha谷歌浏览器扩展工具-调用api识别验证码图片

    autoCaptcha chrome谷歌浏览器扩展工具 调用api识别验证码图片 gitee releases下载地址 api: http://www.bhshare.cn/imgcode/ ps: ...

  6. 在Windows11平台上使用Hyper-V、WSL与虚拟机工具——调用NVIDIA-GPU进行深度学习训练

    Windows11安装 Hyper-V 1.目的是出于在window上安装虚拟机穿透nvidia-gpu进行gpu调用加速. 2.英伟达正式启用GPU虚拟机显卡直通功能: 英伟达宣布,完全支持GeFo ...

  7. iOS使用WSDL2ObjC工具调用Webservice接口

    1. 下载 WSDL2ObjC.app https://code.google.com/archive/p/wsdl2objc/downloads 2:下载WSDL文件 2.1一般情况下, 你会得到这 ...

  8. winform调用SSH2访问linux,使用Cygwin通过ssh命令行来访问Windows 7

    SSH的用户配置 下一步,我们将会为你的用户账户创建合适的SSH关键内容. ssh-user-config 它会询问你是否为你的账户创建特定的关键内容,根据你的需要作出选择.我会对第一个提示选择&qu ...

  9. markdown中添加Emoji表情让文章更有趣味

    markdown表情 在文章中添加Emoji表情,可以添加文章的趣味性,Emoji使用规则是双::中间加单词 查看全文 http://www.taodudu.cc/news/show-4737612. ...

最新文章

  1. Java EE---通过Spring JDBC实现数据库的增、删、改、查
  2. 苹果手机微信上form表单提交的问题
  3. 暴雪战斗公式——除法公式的精髓
  4. 【BZOJ4236】JOIOJI [DP]
  5. 百度安全 TrustZone SDK 正式成为 OP-TEE 官方推荐 Rust 开发环境
  6. Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)
  7. MFC中属性表单和向导对话框的使用
  8. linux图标大全——这些你认识多少?
  9. 兴业证券:主动偏股型基金评价体系
  10. 图解项目研发流程与制度实例
  11. 系统集成项目管理工程师10《项目干系人管理》
  12. 程序员,技术主管和架构师
  13. 算法笔记 分治:循环赛日程 棋盘覆盖 选择问题 输油管问题 整数因子分解
  14. funnyface表情包制作神奇
  15. 万物皆可AI,狗狗也不例外
  16. 简单快速删除流氓软件(包括注册表)
  17. 独立和不相关 区别及形象理解
  18. 打造数据中台,为企业提供智能服务
  19. 机器学习7 - 算法进阶2
  20. 【ECAPA_TDNN 下 】代码和论文细节分析

热门文章

  1. 计算机辅助物理化学实验 唐典勇课后答案,表面张力测定数据的模型拟合及MATLAB处理.pdf...
  2. 英飞凌基础学习笔记-SCU(System Control Units)
  3. 提升代码可读性,减少if-else的几个小技巧
  4. 生成13位条形码 Ean-13码规则: 第十三位数字是前十二位数字经过计算得到的校验码。
  5. 杜克大学2年前的研究上热搜!单身竟然还老得快?太难了!!!
  6. 爆料:曹旭东创立自动驾驶公司Momenta 首次公开项目细节
  7. 微信公众号开发之获取用户列表和用户基本信息(五)
  8. mapboxgl加载google地图、高德地图的在线切片地图
  9. citespace与mysql_citespace问题
  10. Kotlin 使用vararg可变参数