java ssh shell命令_java 通过ssh 执行命令
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 执行命令相关推荐
- java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例
java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...
- linux启动本地远程服务,如何使用SSH在本地控制远程服务器执行命令
通过SSH在本地控制远程服务器执行命令,如果每次都要登录到远程服务器真的好麻烦,起始通过SSH就可以远程执行 在本地使用 ssh $RemoteNode 可以在执行远程机器上的命令,例如 ssh ...
- java命令_JAVA与模式之命令模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式.命令模式又称为行动(Action)模式或交易(Transaction)模式. ...
- java test abc_DOS命令行下成功执行命令:java Test abc 21,则以下描述正确的是()
[单选题]假设有两个整数x和y,表达式x>=y?x:y的含义是() [单选题]下列哪项不是Java语言的关键字?() [判断题]每项经济业务发生后,都会引起企业的资产和权益总额发生增减变动,但会 ...
- linux 新建用户没有权限使用sudo命令以root身份执行命令 解决方法
问题来源: 我们使用sudo命令,让huazi用户使用root身份执行命令时报错: 我们信任您已经从系统管理员那里了解了日常注意事项. 总结起来无外乎这三点: #1) 尊重别人的隐私. #2) 输入前 ...
- Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出
目录 [隐藏] 1 SSH命令格式 2 主要参数说明 3 ssh控制远程主机,远程执行命令步骤 4 准备工作 5 基于公私钥认证远程登录可能存在的不足 6 ssh 执行远程命令格式 6.1 打开远程s ...
- php使用ssh远程调用另一个服务器执行命令(python脚本)
文章目录 一.前言 二.具体步骤 1.php使用exec函数调用命令行 2.ssh跨机器执行命令 (1)登录到另一台机器 (2)登录且执行命令 3.复制秘钥文件并赋予权限 4.复制py文件到指定机器的 ...
- ubuntu croncab定时任务 shell脚本单独可行 定时任务执行命令不可行
shell脚本功能: 获取使用gpu的进程,通过长度判断有几个进程使用gpu,当有1个进程时,执行命令启动另一个进程 创建定时任务步骤: 编写定时任务: crontab -e 编写内容(两个小时执行一 ...
- linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动
启动一些程序服务的时候,有时候直接去程序的bin目录下去执行命令,有时候利用service启动. 比如启动mysql服务时,大部分喜欢执行service mysqld start.当然也可以去mysq ...
最新文章
- WindowType 属性
- cmd 删除文件夹_永远不要碰的5个macOS文件夹及原因
- java opencv bytearray转mat_OpenCV开发中的内存管理问题
- 按钮 交互_SwiftUI中的微交互—菜单按钮动画
- JAVASCRIPT和数据结构,算法
- NSArray与NSSet的区别
- java多线程图解_java多线程实例图解讲解
- 使用百度智能云人脸检测接口实现照片质量检测
- 天涯宝盒-天涯看贴脚本-只看楼主-自动翻页
- 深度学习MatConvNet安装
- linux远程关机重启命令,Linux关机命令解析
- 如何用OpenCV给图片加上文字?
- python百分号用法_python中百分号表示什么意思
- MATLAB雾霾天气下运动目标检测
- 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛
- php开发桌面应用程序_使用PHP开发跨平台桌面应用程序的3种方法
- 谭浩强《C语言》学习1
- java 判断当前月天数
- 微信订阅号,先运营,再技术
- 陕西师范大学计算机学院课表,陕西师范大学数学与信息科学学院课程表(一).doc...
热门文章
- 用RAII技术管理资源及其泛型实现
- linux 安装wdcp控制面板
- 机器学习实战应用50讲(一)-使用student’s T检验的未必是学生
- 买服务器带操作系统,买服务器带操作系统
- 报名照片审核处理工具_太浦军考|2020年文职人员报名照片审核程序,照片处理工具应该如何使用?...
- 孙叫兽进阶之路之Gitlab的使用(图文教程)
- 插入文件找不到桌面了?
- 算法属于计算机服务还是软件,第06讲 服务器软件设计的算法和问题
- lokijs可以用mysql_JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧
- 我所知道的前端组件化与模块化