java ssh工具类_JAVA SSH2工具类
计划
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工具类相关推荐
- java 加减乘除 工具类_Java数学工具类MathUtil详解
package cn.xbz.util.math; import java.math.BigDecimal; /** * @title 数学计算工具类 * @description 提供常用的数值加减 ...
- java简单通讯录的实现02person类_Java中Math类的简单介绍
我想对于Math类大家一定很熟悉了,是Java提供的一个用来进行简单数学运算的工具类.对于Math类来说,常用的方法有: 加法 public static int addExact(int x, in ...
- java 枚举的继承_java中枚举类可以被继承吗?
java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...
- java创建一个人函数类_Java对象和类–学习如何创建和实现
对象和类被认为是任何基于OOPs的语言的精华.由于Java是最常用的面向对象编程语言之一,因此非常有必要牢记这些概念.因此,我为您带来这篇文章,在这里我将给您一个完整的Java对 对象和类被认为是任何 ...
- java unsafe 类_Java的Unsafe类
本文转载自:https://www.cnblogs.com/pkufork/p/java_unsafe.html 最近在看Java并发包的源码,发现了神奇的Unsafe类,仔细研究了一下,在这里跟大家 ...
- java 反射 本类_Java 反射 Class类
Java 反射 Class类 @author ixenos 摘要:Class类在反射中的地位.构造Class对象的三种方式.Class对象构造对应类型对象的三种方式 Class类在反射中的地位 位于j ...
- java实验三多态性_Java实验3 类的多态性和接口
实验3 类的多态性和接口 一.实验目的 理解面向对象的多态性.理解接口和实现接口的类的关系,掌握一个类实现多个接口的声明和使用方法. 二.实验内容 1.程序理解: 接口的应用 //接口的应用 //定义 ...
- java 系统 类_Java常用实体类--System类
字符串.日期.数字是Java程序中最常使用的数据对象,对这些数据的创建.修改.格式化和转换等操作融入在Java程序的每个角落,必须熟练掌握.本节将通过实例演示以下常用实体类Java系统级类:系统类Sy ...
- java 中的class类_Java中Class类简介
Java中Class类简介 1. 在面向对象的世界里,万事万物皆对象.(java语言中,静态的成员.普通数据类型除外) 类是不是对象呢?类是(哪个类的对象呢?)谁的对象呢? -- 类是对象,类是jav ...
最新文章
- Nagios监控Windows server 2003 系统
- 90后售楼人员的肺腑之言:再便宜你也不能买的房子(转)
- 是什么让深度学习再次崛起并超越人类?
- 《Windows via C/C++》学习笔记 —— Windows 线程池
- Caffe将图像数据转换成leveldb/lmdb
- 全新OpenMMLab邀你入伙 共创AI开源世界
- php 魔术方法 多继承,PHP通过魔术方法实现多继承与重载
- Spring技术原理之Spring AOP
- Ubuntu安装OpenTSDB
- Unity API学习笔记(2)-GameObject的3种Message消息方法
- windows服务应用--做个简单的定时调用EXE功能(笔记)
- linux环境下VSCode的C++环境搭建
- oracle中的内连接和外连接区别
- 计算机的生产过程,笔记本电脑生产流程介绍 .pptx
- 善领声音编辑器,修改search.dat完美启动静音
- matlab中双引号_在matlab中单引号和双引号各有什么意义?为什么有的函数参数要加单引号,有的要加双引号?...
- 使用Flink Metric Reporter 对flink任务指标进行监控
- FindMeChat(盲盒社交)-匿名聊天-好玩有趣的社交平台
- win11 删除自带的微软输入法
- poi hssfcellstyle 文字方向_揭秘!文字识别在高德地图数据生产中的演进
热门文章
- leetcode-383-Ransom Note(以空间换时间)
- DNS RR字段含义
- 无线网络会杀死固网? 不可能的事情
- 6425C-Lab2 安全高效地管理AD
- Tries and Ternary Search Trees in Python and Javascript
- c#中的interface abstract 与 virtual(转)
- linux openssl libcurl库 交叉编译
- python3 socks.wrap_module方法 针对单个模块进行代理设置
- python 找不到ssl模块问题 no module named _ssl
- linux gcc 内联汇编入门