`
xiangxingchina
  • 浏览: 508195 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ssh 远程调用

 
阅读更多

package com.sun.work;

import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.Properties;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;

public class PipeStreamTest {

public static void main(String args[]){
try {
new PipeStreamTest().connect();
} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void connect() throws JSchException {
JSch jsch = new JSch();
Session session = jsch.getSession("test", "10.67.7.109", 22);
session.setPassword("SVNAdmin");
Properties prop = new Properties();
prop.setProperty("StrictHostKeyChecking", "no");// StrictHostKeyChecking:
// ask | yes | no
session.setConfig(prop);
session.connect();

Channel channel = session.openChannel("shell");
Sender t1 = new Sender();
Receiver t2 = new Receiver();
PipedInputStream pis1 = t2.getInputStream();
PipedOutputStream pos1 = t1.getOutputStream();
//如果是用控制台,可以这样设置。
// channel.setOutputStream(System.out);
// channel.setInputStream(System.in);
channel.setInputStream(pis1);
channel.setOutputStream(pos1);


try {
pos1.connect(pis1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t1.start();
t2.start();
channel.connect();
}

class Sender extends Thread {
private PipedOutputStream out = new PipedOutputStream();

public PipedOutputStream getOutputStream() {
return out;
}

public void run() {
String s = "ls -F";
try {
out.write(s.getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

class Receiver extends Thread {
private PipedInputStream in = new PipedInputStream();

public PipedInputStream getInputStream() {
return in;
}

public void run() {
byte[] buf = new byte[10240];
try {
while(in.read()!=-1){
int len = in.read(buf);
System.out.println(len);
String s = new String(buf, 0, len);
System.out.println(s);
//in.close();
}

} catch (Exception e) {
e.printStackTrace();
}
}
}

}

分享到:
评论

相关推荐

    Java(通过ganymed-ssh2-build210.jar)实现SSH远程连接linux终端

    Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!

    远程shell调用.rar

    本人根据实际项目需求所开发的,SSH2远程执行Linux中Shell脚本Java小工具,亲测有效!里赋有已打好的程序jar包及工具使用说明,简单易用,很方便哟!

    易语言调用SSH2演示

    易语言调用SSH2演示源码,调用SSH2演示,libssh2_userauth_password,libssh2_channel_open_session,libssh2_channel_exec,libssh2_channel_read,libssh2_session_disconnect,accept,AcceptEx,bind,closesocket,connect...

    java调用远程ssh代码示例

    java调用远程ssh代码示例

    Maven创建SSH通过CXF远程调用webservice

    两个项目均为maven项目,klpserver为服务端,klpclient为客户端.服务端项目要使用"已存在的maven项目"导入,客户端直接使用"已存在的java工程导入"即可.不需要的配置如数据库连接信息可以注释掉,运行时,直接运行服务端...

    struts2.3.4+spring3.2.0+hibernate4+hibernate_generic_dao 全注释+远程调用

    struts2.3.4+spring3.2.0+hibernate4+hibernate_generic_dao struts hibernate spring最大化使用注释 基于spring的远程调用

    Java实现windows下远程调用shell脚本

    该工具是基于SSH2协议的实现,在使用它的过程中非常容易,只需要指定合法的用户名口令,或者授权认证文件,就可以创建到远程Linux主机的连接,在建立起来的会话中调用该Linux主机上的脚本文件,执行相关操作。

    ganymed-ssh2 远程连接java实例代码

    Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程端口转发,本地数据流转发,X11转发和SCP。这些都没有依赖任何JCE provider,而且所有这些都包含加密的功能。该资源是java远程连接ssh服务器的实例...

    java通过ssh调用centos7指令

    java通过ssh调用centos7指令,获取磁盘空间使用率、磁盘空间使用情况、网络使用情况,CPU使用率,内存使用率

    asp.net实现SSH连接远程Linux服务器

    asp.net程序远程调用Linux服务器shell脚步执行hive命令;引用了Routrek.granados.dll

    QT实现SSH,sftp

    由于项目开发需要使用到QSSh,但是网站上的资源很少,所以自己找了源码进行编译出了库文件进行使用,QSsh源码已编译含有库文件,可直接用于程序链接,需要QSsh开发不要错过哦

    java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包)

    java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包) ---------Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!

    LINUX SSH显示中文乱码解决

    LINUX SSH显示中文乱码解决方法,我们经常都会遇到这样的问题,远程SSH登录LINUX系统时中文字体显示乱码,这里教你怎么解决这个问题。

    HFSS远程仿真RSM.pdf

    HFSS除了能够在本机上进行设计和仿真外,还可以方便的设置为在本机上进行设计、在局域网内其它电脑上进行远程仿真。HFSS使用远程服务器仿真,RSM的安装与设置方法。

    Linux下使用python调用top命令获得CPU利用率

    本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。 如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下: 复制代码 代码如下: top -bi > cpuHistory.log 或 复制代码 代码...

    jenkins 执行远程linux命令

    jenkins 执行远程linux命令,jenkins 执行远程linux命令,jenkins 执行远程linux命令

    ssh2.jar java linux

    里面有调用示例 java连接Linux系统远程调用

    linux 远程控制windows系统下的程序(三种方法)

    有时候我们需要通过在linux上远程运行windows系统上的程序。 方法一: 通过python中的 winrm模块,前提条件,先提前设置好winrm服务。如何设置请自行百度,winRM服务是windows server下PowerShell的远程管理服务。...

    批量上传文件及执行命令脚本——ssh_batch_trans

    该脚本需要调用的模块为:paramiko, sys, datetime, threading, queue, getopt 其中sys, datetime, threading, queue, getopt模块均为python自带模块; paramiko模块在cmd中python -m pip install paramiko...

    ssh实现仿急宅送

    ssh,easyui,shiro权限控制,hessian远程调用,实现的仿急宅送ssh项目

Global site tag (gtag.js) - Google Analytics