`

ssh2的两种java实现

    博客分类:
  • ssh2
 
阅读更多
SSH2的两种java实现,jcraft和Ganymed,终于把困扰我多日的问题解决了,贴上来看看 [点击图片可在新窗口打开]
(看了源码,Ganymed好像就是对craft做了封装.)

/**
* craft method
*/
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.UserInfo;

public class SSHTest {
public static final UserInfo defaultUserInfo = new UserInfo() {
  public String getPassphrase() {
   return null;
  }

  public String getPassword() {
   return null;
  }
  public boolean promptPassword(String arg0) {
   return false;
  }

  public boolean promptPassphrase(String arg0) {
   return false;
  }

  public boolean promptYesNo(String arg0) {
   return true;
  }

  public void showMessage(String arg0) {
  }
};

public static void main(String[] args) throws Exception {
  String hostname = "192.168.0.0";
  String username = "root";
  String password = "pass";
  String remoteFile = "/home/sun";
  String localFile = "C:\\001.txt";

  JSch jsch = new JSch();

  Session session = jsch.getSession(username, hostname, 22);
  session.setPassword(password);
  session.setUserInfo(defaultUserInfo);
  session.connect();
 
  Channel channel = session.openChannel("sftp");
  channel.connect();
  ChannelSftp c = (ChannelSftp) channel;
  c.put(localFile, remoteFile);
  session.disconnect();
}
}



/**
* Ganymed method
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

public class Basic
{
public static void main(String[] args)
{
  String hostname = "192.168.0.0";
  String username = "root";
  String password = "pass";

  try
  {
   Connection conn = new Connection(hostname);

   conn.connect();

   boolean isAuthenticated = conn.authenticateWithPassword(username, password);

   if (isAuthenticated == false)
    throw new IOException("Authentication failed.");

   Session sess = conn.openSession();

   sess.execCommand("cd /home/sun && mkdir test");

   InputStream stdout = new StreamGobbler(sess.getStdout());

   BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

   while (true)
   {
    String line = br.readLine();
    if (line == null)
     break;
    System.out.println(line);
   }

   System.out.println("ExitCode: " + sess.getExitStatus());

   sess.close();

   conn.close();

  }
  catch (IOException e)
  {
   e.printStackTrace(System.err);
   System.exit(2);
  }
}
}
分享到:
评论

相关推荐

    ssh初步整合实现邮件的发送和上传文件的功能的小项目

    ssh初步整合实现邮件的发送和上传文件的功能,代码直接导入的myeclipse中,并且改下邮箱就可运行,这个项目是我自学时做的,用了两种方式,还有一种方式下次再发

    idea基于maven的SSH模板

    SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是目前比较流行的一种Java Web开源框架。 SSH主要用于Java Web的开发。现在SSH有SSH1和SSH2两种,区别在于Struts的版本是struts1.x还是2.x。

    ssh框架搭建实例源码

    本资源是一个最简单的一个ssh框架实例,包含完整的代码(dao层有annotation和xml两种实现方式修改applicationContext.xml和hibernate.cfg.xml相应位置就可以切换),数据库ssh.sql文件,和所有的jar包,运行于eclips...

    JAVA-SSH面试题

    JAVA-SSH面试题:1.谈谈你mvc的理解,2.struts1.2和struts2.0的区别?如何控制两种框架中的单例模式?,3.Hibernate缓存

    java源码包2

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    SSH2框架搭建,Spring3+hibernate3+JPA2,全注解实现

    该框架是SSH2框架搭建,Spring3+hibernate3+JPA2,全注解实现。使用oracle数据库(包中包含创建语句),数据库访问层dao使用hibernate+jpa和jdbctemplate两种方式实现。并包括log4j,filter拦截器等技术。

    毕业设计,基于SSH2+MySql+Bootstrap+EasyUI开发的花卉鲜花购物网站,内含Java完整源代码,数据库脚本

    毕业设计,基于SSH2+MySql+Bootstrap+EasyUI开发的花卉鲜花购物网站,内含Java完整源代码,数据库脚本 JSP基于SSH2花卉鲜花购物网站设计毕业源码案例设计 开发技术:myEclipse/Eclipse/Idea都可以,采用SSH框架 ...

    基于javaEE健康管理系统SSH毕业论文文档+java源码文件+视频说明.zip

    基于javaEE健康管理系统SSH毕业论文文档+java源码文件+视频说明,javaEE健康管理系统主要功能包括:教师登录退出、教师饮食管理、教师健康日志、体检管理等等。本系统结构如下: (1)用户模块: 实现登录功能 ...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    SSH框架登录示例 同一账户只能一人登录

    用户注销 非正常退出 session失效 三种情况来进行 控制 分别使用了两种方式 进行了实现1:不修改数据库使用HashMap+HttpSessionListener 2:给数据库添加online列 使用(数据库脚本包含在内)HashMap+...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包4

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    telnet和ssh连接服务器源码

    远程连接服务器的两种方式,telnet和ssh两种,还提供了执行命令的接口

    java源码包3

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVAEE健康管理系统SSH

    针对糖尿病和高血压两种疾病,利用数学线性回归的方法,模拟计算出教师患病概率。 (6) 后台管理员模块 管理员用户登录功能:通过账号登录系统。 管理员管理教师功能:可以增删改查教师基本信息。 管理员管理...

    java开源包3

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java面试要点集合

    1、jsp两种跳转方式 2、struts标签库有哪些 3、struts主要类有哪几个 4、数据库事务有什么用、什么是ACID 航天信息有限公司 1。List与Set的相同与不同之处,分别举出两个这两个接口的常用方法。(10分) 2。谈谈...

Global site tag (gtag.js) - Google Analytics