`
xiangxingchina
  • 浏览: 520053 次
  • 性别: 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();
}
}
}

}

分享到:
评论

相关推荐

    远程执行命令脚本,可传密码

    linux下远程执行命令脚本,可传密码,提升权限

    远程shell调用.rar

    这个“远程shell调用.rar”文件包含了一个基于Java的工具,它允许开发者通过SSH连接到Linux服务器并执行Shell脚本,从而简化了这一过程。 首先,让我们了解一下SSH2。SSH2是SSH协议的第二版,相比SSH1,它提供了更...

    远程调用linux命令的demo

    在IT行业中,远程调用Linux命令是常见的操作,特别是在分布式系统和自动化运维中。这篇名为“远程调用Linux命令的demo”的文章可能介绍了一种或多种实现方式,让我们通过标签和文件名来推测可能涉及的知识点。 首先...

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

    Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...

    Xming 免安装版本 和 Xshell 配套使用 远程调用可视化界面

    在IT领域,远程调用可视化界面对于Linux系统管理员和开发者来说是至关重要的,尤其是在处理图形化应用程序时。本文将详细讲解如何使用Xming免安装版本与Xshell配合,实现从本地Windows系统远程调用Linux服务器的可视...

    易语言调用SSH2演示

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

    python调用SSH命令

    Python调用SSH命令主要涉及到的是远程服务器操作,通常用于自动化运维、部署任务或者进行系统间的交互。SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地执行远程命令。在Python中,我们可以使用多种...

    构建一个分布式系统的简单方案

    3. **SSH远程调用**:利用SSH实现对远程机器上程序和服务的安全调用,支持基于用户的细粒度权限控制。 通过这种方式,不仅解决了进程唯一标识的问题,还简化了远程通信的实现,为构建分布式系统提供了一种可行且...

    Linux系统通过SSH协议调用图形化界面

    ### Linux系统通过SSH协议调用图形化界面 #### 背景介绍 在日常工作中,我们经常需要远程访问Linux服务器来进行管理和操作。传统的SSH连接仅支持命令行模式,但有时我们需要进行图形化界面操作,例如运行图形化...

    java调用远程ssh代码示例

    java调用远程ssh代码示例

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

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

    java 远程调用Shell脚本客户端包

    Java 远程调用Shell脚本客户端包是一个实用的工具,专为开发者设计,使得在Java应用程序中执行远程Shell命令变得简单而高效。这个包的主要功能是通过Java代码发起对远程服务器上的Shell脚本的调用,从而实现跨平台的...

    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的远程调用

    C#通过ssh调用linux终端及文件上传

    本教程将详细讲解如何使用C#通过SSH(Secure Shell)协议来调用Linux终端并实现文件上传。 SSH是一种网络协议,用于安全地远程登录到Linux或Unix服务器,执行命令,以及传输文件。C#中可以借助第三方库,如SSH.NET...

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

    1. **ASP.NET编程**:ASP.NET开发者需要了解如何在C#或VB.NET代码中使用Granados库,创建SSH连接,设置认证信息(如用户名、密码或密钥对),然后调用远程shell命令。这通常涉及到使用`Granados.Ssh`命名空间中的类...

    qt版ssh上传下载以及发命令

    在Qt中,这可以通过调用SSH库的相应函数来实现,例如创建一个会话,打开一个shell通道,发送命令,然后读取命令输出。 项目提供了测试例子和界面,意味着它包含了一个完整的Qt Pro工程,可以使用Qt Creator或VSQT...

    QT实现SSH,sftp

    QT实现SSH和SFTP是基于Qt框架的网络通信技术,主要应用于远程服务器的访问和文件传输。在本文中,我们将深入探讨如何使用QT库来实现SSH(Secure Shell)和SFTP(Secure File Transfer Protocol)功能,以及如何在...

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

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

    java通过ssh调用centos7指令

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

Global site tag (gtag.js) - Google Analytics