计划

ssh2utils

connection

常规session操作 未完成

常规scf操作 未完成

简介

使用java进行ssh 操作,执行脚本,scp文件的包装

依赖

com.trilead

trilead-ssh2

1.0.0-build221

接口

public abstract class SSH2Utils {

private final static Logger logger = LoggerFactory.getLogger(SSH2Utils.class);

/**

* 根据 远程主机地址获得 连接,之后需要依次进行 connect 和 鉴权

*

* @param host 远程主机地址

*/

public static EnhanceConnection just(String host) {

return EnhanceConnection.onAssembly(host);

}

/**

* 根据 远程主机地址 以及端口 获得 连接,之后需要依次进行 connect 和 鉴权

*

* @param host 远程主机地址

* @param port 端口

*/

public static EnhanceConnection just(String host, int port) {

logger.info("suggest use easy to get connection");

return EnhanceConnection.onAssembly(host, port);

}

/**

* @param host 远程主机地址

* @param port 端口

* @param userame 用户名

* @param password 密码

*/

public static EnhanceConnection easy(String host, int port, String userame, String password) {

return just(host, port).connect().authenticate(userame, password);

}

}

业务逻辑

EnhanceConnection.class

public class EnhanceConnection {

private Connection connection;

public static EnhanceConnection onAssembly(String host) {

return new EnhanceConnection(host);

}

public static EnhanceConnection onAssembly(String host, int port) {

return new EnhanceConnection(host, port);

}

private EnhanceConnection(String host) {

connection = new Connection(host);

}

private EnhanceConnection(String host, int port) {

connection = new Connection(host, port);

}

// authentication

public EnhanceConnection authenticate(String username, String passwald) {

try {

boolean boolen = connection.authenticateWithPassword(username, passwald);

if (boolen) {

return this;

} else {

throw new RuntimeException("Authentication Failed");

}

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("Username or Password Error" + e);

}

}

// connect to the server

public EnhanceConnection connect() {

try {

connection.connect((ServerHostKeyVerifier) null, 0, 0);

return this;

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("There was a problem during connect" + e);

}

}

public Connection getConnection() {

if (connection == null) {

throw new RuntimeException("connection nout init");

}

return connection;

}

public EnhanceSession session() {

return EnhanceSession.onAssembly(this);

}

public EnhanceSCP scpClient() {

return EnhanceSCP.onAssembly(this);

}

}

java ssh工具类_JAVA SSH2工具类相关推荐

  1. java 加减乘除 工具类_Java数学工具类MathUtil详解

    package cn.xbz.util.math; import java.math.BigDecimal; /** * @title 数学计算工具类 * @description 提供常用的数值加减 ...

  2. java简单通讯录的实现02person类_Java中Math类的简单介绍

    我想对于Math类大家一定很熟悉了,是Java提供的一个用来进行简单数学运算的工具类.对于Math类来说,常用的方法有: 加法 public static int addExact(int x, in ...

  3. java 枚举的继承_java中枚举类可以被继承吗?

    java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...

  4. java创建一个人函数类_Java对象和类–学习如何创建和实现

    对象和类被认为是任何基于OOPs的语言的精华.由于Java是最常用的面向对象编程语言之一,因此非常有必要牢记这些概念.因此,我为您带来这篇文章,在这里我将给您一个完整的Java对 对象和类被认为是任何 ...

  5. java unsafe 类_Java的Unsafe类

    本文转载自:https://www.cnblogs.com/pkufork/p/java_unsafe.html 最近在看Java并发包的源码,发现了神奇的Unsafe类,仔细研究了一下,在这里跟大家 ...

  6. java 反射 本类_Java 反射 Class类

    Java 反射 Class类 @author ixenos 摘要:Class类在反射中的地位.构造Class对象的三种方式.Class对象构造对应类型对象的三种方式 Class类在反射中的地位 位于j ...

  7. java实验三多态性_Java实验3 类的多态性和接口

    实验3 类的多态性和接口 一.实验目的 理解面向对象的多态性.理解接口和实现接口的类的关系,掌握一个类实现多个接口的声明和使用方法. 二.实验内容 1.程序理解: 接口的应用 //接口的应用 //定义 ...

  8. java 系统 类_Java常用实体类--System类

    字符串.日期.数字是Java程序中最常使用的数据对象,对这些数据的创建.修改.格式化和转换等操作融入在Java程序的每个角落,必须熟练掌握.本节将通过实例演示以下常用实体类Java系统级类:系统类Sy ...

  9. java 中的class类_Java中Class类简介

    Java中Class类简介 1. 在面向对象的世界里,万事万物皆对象.(java语言中,静态的成员.普通数据类型除外) 类是不是对象呢?类是(哪个类的对象呢?)谁的对象呢? -- 类是对象,类是jav ...

最新文章

  1. Nagios监控Windows server 2003 系统
  2. 90后售楼人员的肺腑之言:再便宜你也不能买的房子(转)
  3. 是什么让深度学习再次崛起并超越人类?
  4. 《Windows via C/C++》学习笔记 —— Windows 线程池
  5. Caffe将图像数据转换成leveldb/lmdb
  6. 全新OpenMMLab邀你入伙 共创AI开源世界
  7. php 魔术方法 多继承,PHP通过魔术方法实现多继承与重载
  8. Spring技术原理之Spring AOP
  9. Ubuntu安装OpenTSDB
  10. Unity API学习笔记(2)-GameObject的3种Message消息方法
  11. windows服务应用--做个简单的定时调用EXE功能(笔记)
  12. linux环境下VSCode的C++环境搭建
  13. oracle中的内连接和外连接区别
  14. 计算机的生产过程,笔记本电脑生产流程介绍 .pptx
  15. 善领声音编辑器,修改search.dat完美启动静音
  16. matlab中双引号_在matlab中单引号和双引号各有什么意义?为什么有的函数参数要加单引号,有的要加双引号?...
  17. 使用Flink Metric Reporter 对flink任务指标进行监控
  18. FindMeChat(盲盒社交)-匿名聊天-好玩有趣的社交平台
  19. win11 删除自带的微软输入法
  20. poi hssfcellstyle 文字方向_揭秘!文字识别在高德地图数据生产中的演进

热门文章

  1. leetcode-383-Ransom Note(以空间换时间)
  2. DNS RR字段含义
  3. 无线网络会杀死固网? 不可能的事情
  4. 6425C-Lab2 安全高效地管理AD
  5. Tries and Ternary Search Trees in Python and Javascript
  6. c#中的interface abstract 与 virtual(转)
  7. linux openssl libcurl库 交叉编译
  8. python3 socks.wrap_module方法 针对单个模块进行代理设置
  9. python 找不到ssl模块问题 no module named _ssl
  10. linux gcc 内联汇编入门