sshj 示例

开发常常需要去服务器做一些操作,比如配置一下,或者取服务器的配置什么的,需要写点工具方便开发。

下面是一个使用sshj 模拟ssh的过程。

package sshStuff;

import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.common.IOUtils;
import net.schmizz.sshj.connection.channel.direct.Session;
import net.schmizz.sshj.connection.channel.direct.Session.Command;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier; public class Functor { public static void main(String[] args) throws Exception {
String TMP = "http://10.59.60.231:31154";
if(args.length >= 1){
TMP = args[0];
}
String ret = connect(TMP);
System.out.println(ret);
} public static String connect(String url) throws Exception {
SSHClient ssh = new SSHClient();
ssh.addHostKeyVerifier(new PromiscuousVerifier());
ssh.connect(getIp(url), getPort(url));
ssh.authPassword("root", "123456"); Session session = ssh.startSession();
Command cmd = session.exec("cat /usr/local/tomcat/StartTomcat.sh");
String ret = IOUtils.readFully(cmd.getInputStream()).toString();
// System.out.println(ret);
session.close();
ssh.close();
return ret;
} private static String getIpPort(String url) { String[] slash = url.split("/");
String ipport = null;
if (url.toLowerCase().startsWith("http")) {
ipport = slash[2];
} else {
ipport = slash[0];
}
return ipport;
} private static String getIp(String url) {
String ipport = getIpPort(url);
return ipport.split(":")[0];
} private static int getPort(String url) {
String ipport = getIpPort(url);
return Integer.parseInt(ipport.split(":")[1]) + 1;
} }

下面是gradle配置

apply plugin: 'java'

repositories {
mavenCentral()
} dependencies { compile group: 'net.schmizz', name: 'sshj', version: '0.10.0'
} // In this section you declare where to find the dependencies of your project
repositories {
// Use jcenter for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
} jar {
from {configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
manifest {
attributes 'Main-Class': 'sshStuff.Functor'
}
exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}

最新文章

  1. Windows操作系统下远程连接MySQL数据库
  2. C语言基础(一)
  3. MinGW安装c-c++
  4. Response.End抛出ThreadAbortException 异常
  5. 启动Mysql服务提示Can’t connect to local MySQL server through socket的解决方法
  6. IndexedDB
  7. Xcode使用小结2
  8. java代码如何读取properties文件
  9. 浏览器关闭后,Session会话结束了么?
  10. 20 ViewPager Demo3指示器
  11. 深入解读MySQL8.0 新特性 :Crash Safe DDL
  12. 【Spark篇】---Spark初始
  13. 【SQL】SqlServer中Group By后,字符串合并
  14. vue.cli 中使用 less 来写css样式
  15. 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(第三部分)
  16. Java代码里利用Fiddler抓包调试设置
  17. oracle补齐日期
  18. webpack快速入门——给webpack增加babel支持
  19. html实现时间输入框
  20. 软件图书,偏.net方向

热门文章

  1. javascript中使用"<"符号,比较大小的是字符串或对象时正确的处理方法
  2. LeetCode - Robot Room Cleaner
  3. Python实例之抓取网易云课堂搜索数据(post方式json型数据)并保存到数据库
  4. #Windows# 删除桌面删除不了文件夹
  5. dispatherServlet拦截所有请求,但是不拦截JSP和其他配置的servelt
  6. python selenium Chrome模拟手机浏览器(十七)
  7. python爬虫---selenium库的用法
  8. 2--STM32+USB移植+HID 与AUDIO类MIDI设备组成的复合设备(原创)
  9. Oracle 动态SQL 注意细节 ORA-00911: 无效字符
  10. linux Table is marked as crashed and should be repaired