采用JSCH实现对linux远程操作(SSH协议),实现在远程linux机器上执行相关的命令
来源:互联网 发布:java trim 全角空格 编辑:程序博客网 时间:2024/04/19 14:46
采用JSCH实现对linux远程操作(SSH协议),实现在远程linux机器上执行相关的命令
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.nio.charset.Charset;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelExec;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch.Session;public class JSchDemo {private String charset = "UTF-8"; // 设置编码格式private String user; // 用户名private String passwd; // 登录密码private String host; // 主机IPprivate JSch jsch;private Session session;/** * * @param user用户名 * @param passwd密码 * @param host主机IP */public JSchDemo(String user, String passwd, String host) {this.user = user;this.passwd = passwd;this.host = host;}/** * 连接到指定的IP * * @throws JSchException */public void connect() throws JSchException {jsch = new JSch();session = jsch.getSession(user, host, 22);session.setPassword(passwd);java.util.Properties config = new java.util.Properties();config.put("StrictHostKeyChecking", "no");session.setConfig(config);session.connect();}/** * 执行相关的命令 */public void execCmd() {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String command = "";BufferedReader reader = null;Channel channel = null;try {while ((command = br.readLine()) != null) {channel = session.openChannel("exec");((ChannelExec) channel).setCommand(command);channel.setInputStream(null);((ChannelExec) channel).setErrStream(System.err);channel.connect();InputStream in = channel.getInputStream();reader = new BufferedReader(new InputStreamReader(in,Charset.forName(charset)));String buf = null;while ((buf = reader.readLine()) != null) {System.out.println(buf);}}} catch (IOException e) {e.printStackTrace();} catch (JSchException e) {e.printStackTrace();} finally {try {reader.close();} catch (IOException e) {e.printStackTrace();}channel.disconnect();session.disconnect();}}public static void main(String[] args) throws Exception {String user = "root";String passwd = "123456";String host = "192.168.1.188";JSchDemo demo = new JSchDemo(user, passwd, host);demo.connect();demo.execCmd();}}
暂时功能还比较简单
- 采用JSCH实现对linux远程操作(SSH协议),实现在远程linux机器上执行相关的命令
- JSCH 如何实现在远程机器上执行linux命令
- SSH 在本地执行远程机器上的命令
- SSH 在本地执行远程机器上的命令
- SSH在本地执行远程机器上的命令
- SSH 在本地执行远程机器上的命令
- 利用JSCH实现远程操作Linux系统和hadoop集群
- JAVA实现远程SSH连接linux并执行命令
- 如何通过命令行执行远程linux机器上的命令
- JSch连接SSH远程执行命令
- JSch连接SSH远程执行命令
- java中利用jsch执行远程命令,实现sftp
- java 使用jsch 远程链接linux执行命令
- java 使用jsch 远程链接linux执行命令
- java 使用jsch 远程链接linux执行命令
- Ganymed SSH-2 java执行远程linux机器命令工具
- RobotFramework+SSHLibrary实现远程执行Linux命令
- linux 下远程执行命令 socket实现
- 华为双重危机下的全球超越之道
- Android开发中Java回调机制的应用
- 网络相关
- HDU 1064 Financial Management
- Let the Balloon Rise
- 采用JSCH实现对linux远程操作(SSH协议),实现在远程linux机器上执行相关的命令
- fedora14 安装配置samba服务器
- 数据库设计技巧
- C02:程序设计基础提高班(C++)
- ETW是什么架构|Event Tracing for Windows
- Head First 之策略模式笔记
- TC SRM 554
- opencv 图像阴影检测
- 托盘程序导致无法注销或关机