java 里面的开源 ssh lib

jsch 例子

JSch jSch = new JSch();

//设置JSch 的日志,可以看到具体日志信息

JSch.setLogger(new Logger() {

@Override

public boolean isEnabled(int level) {

return true;

}

@Override

public void log(int level, String message) {

System.out.println("logger:" + message);

}

});

com.jcraft.jsch.Session session = jSch.getSession("king", "127.0.0.1");

session.setPassword("123456");

//忽略hostkey 检查

session.setConfig("StrictHostKeyChecking", "no");

//设置需要kerbores 验证 键盘交互 忽略

session.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password");

session.connect(60000);

//开启shell,shell 具有上下文交互,执行命令不会马上退出

ChannelShell shell = (ChannelShell) session.openChannel("shell");

//开始 exec 类似linux bash -c exec 执行完命令马上退出

//ChannelExec exec = (ChannelExec)session.openChannel("exec");

//exec.setCommand("");

shell.setPtyType("dumb");

shell.setPty(true);

shell.connect(60000);

boolean connected = shell.isConnected();

OutputStream outputStream = shell.getOutputStream();

InputStream inputStream = shell.getInputStream();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));

//通过流写入命令

outputStream.write("pwd\n cd /home\nls\npwd\n".getBytes());

outputStream.flush();

String line;

while ((line = bufferedReader.readLine()) != null) {

System.out.println(line);

}

sshj 例子

DefaultConfig defaultConfig = new DefaultConfig();

final SSHClient client = new SSHClient(defaultConfig);

String host = "127.0.0.1";

String user = "king";

String password = "123456";

client.setTimeout(60000);

client.loadKnownHosts();

client.addHostKeyVerifier(new PromiscuousVerifier());

client.connect(host);

try {

client.authPassword(user, password);

final SessionChannel session = (SessionChannel) client.startSession();

session.allocateDefaultPTY();

//这里的session 类似 jsch 里面的exec ,可以直接执行命令。

//session.exec("pwd");

SessionChannel shell = (SessionChannel) session.startShell();

try {

OutputStream outputStream = shell.getOutputStream();

outputStream.write("pwd\n".getBytes());

outputStream.flush();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(shell.getInputStream(), "utf-8"));

String line;

while ((line = bufferedReader.readLine()) != null) {

System.out.println(line);

}

} catch (InterruptedException e) {

e.printStackTrace();

}

} finally {

client.disconnect();

}

java ssh shell命令_java 通过ssh 执行命令相关推荐

  1. java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例

    java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...

  2. linux启动本地远程服务,如何使用SSH在本地控制远程服务器执行命令

    通过SSH在本地控制远程服务器执行命令,如果每次都要登录到远程服务器真的好麻烦,起始通过SSH就可以远程执行 在本地使用 ssh $RemoteNode    可以在执行远程机器上的命令,例如 ssh ...

  3. java命令_JAVA与模式之命令模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式.命令模式又称为行动(Action)模式或交易(Transaction)模式. ...

  4. java test abc_DOS命令行下成功执行命令:java Test abc 21,则以下描述正确的是()

    [单选题]假设有两个整数x和y,表达式x>=y?x:y的含义是() [单选题]下列哪项不是Java语言的关键字?() [判断题]每项经济业务发生后,都会引起企业的资产和权益总额发生增减变动,但会 ...

  5. linux 新建用户没有权限使用sudo命令以root身份执行命令 解决方法

    问题来源: 我们使用sudo命令,让huazi用户使用root身份执行命令时报错: 我们信任您已经从系统管理员那里了解了日常注意事项. 总结起来无外乎这三点: #1) 尊重别人的隐私. #2) 输入前 ...

  6. Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出

    目录 [隐藏] 1 SSH命令格式 2 主要参数说明 3 ssh控制远程主机,远程执行命令步骤 4 准备工作 5 基于公私钥认证远程登录可能存在的不足 6 ssh 执行远程命令格式 6.1 打开远程s ...

  7. php使用ssh远程调用另一个服务器执行命令(python脚本)

    文章目录 一.前言 二.具体步骤 1.php使用exec函数调用命令行 2.ssh跨机器执行命令 (1)登录到另一台机器 (2)登录且执行命令 3.复制秘钥文件并赋予权限 4.复制py文件到指定机器的 ...

  8. ubuntu croncab定时任务 shell脚本单独可行 定时任务执行命令不可行

    shell脚本功能: 获取使用gpu的进程,通过长度判断有几个进程使用gpu,当有1个进程时,执行命令启动另一个进程 创建定时任务步骤: 编写定时任务: crontab -e 编写内容(两个小时执行一 ...

  9. linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动

    启动一些程序服务的时候,有时候直接去程序的bin目录下去执行命令,有时候利用service启动. 比如启动mysql服务时,大部分喜欢执行service mysqld start.当然也可以去mysq ...

最新文章

  1. WindowType 属性
  2. cmd 删除文件夹_永远不要碰的5个macOS文件夹及原因
  3. java opencv bytearray转mat_OpenCV开发中的内存管理问题
  4. 按钮 交互_SwiftUI中的微交互—菜单按钮动画
  5. JAVASCRIPT和数据结构,算法
  6. NSArray与NSSet的区别
  7. java多线程图解_java多线程实例图解讲解
  8. 使用百度智能云人脸检测接口实现照片质量检测
  9. 天涯宝盒-天涯看贴脚本-只看楼主-自动翻页
  10. 深度学习MatConvNet安装
  11. linux远程关机重启命令,Linux关机命令解析
  12. 如何用OpenCV给图片加上文字?
  13. python百分号用法_python中百分号表示什么意思
  14. MATLAB雾霾天气下运动目标检测
  15. 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛
  16. php开发桌面应用程序_使用PHP开发跨平台桌面应用程序的3种方法
  17. 谭浩强《C语言》学习1
  18. java 判断当前月天数
  19. 微信订阅号,先运营,再技术
  20. 陕西师范大学计算机学院课表,陕西师范大学数学与信息科学学院课程表(一).doc...

热门文章

  1. 用RAII技术管理资源及其泛型实现
  2. linux 安装wdcp控制面板
  3. 机器学习实战应用50讲(一)-使用student’s T检验的未必是学生
  4. 买服务器带操作系统,买服务器带操作系统
  5. 报名照片审核处理工具_太浦军考|2020年文职人员报名照片审核程序,照片处理工具应该如何使用?...
  6. 孙叫兽进阶之路之Gitlab的使用(图文教程)
  7. 插入文件找不到桌面了?
  8. 算法属于计算机服务还是软件,第06讲 服务器软件设计的算法和问题
  9. lokijs可以用mysql_JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧
  10. 我所知道的前端组件化与模块化