- 浏览: 252454 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (298)
- 工作感悟 (6)
- java基础 (23)
- 计算机硬件知识 (1)
- 计算机网络知识 (2)
- Struts (3)
- Srping (4)
- hibernate (0)
- ibatis (0)
- webservice (4)
- Thread (22)
- maven (5)
- ubuntu/linux/centos/redhat (46)
- SSO (1)
- ESB (0)
- 工作流 (0)
- oracle (15)
- 云计算 (1)
- hadoop (1)
- nosql (0)
- mysql (3)
- sqlserver (0)
- jquery (0)
- 分布式 (3)
- 集群 (0)
- 设计模式 (2)
- EJB (0)
- map (0)
- cache (5)
- Niginx+varnish+squid+Ats (14)
- Apache (0)
- 工作/职业规划 (0)
- Scala & Groovy (1)
- English (4)
- 数据结构/算法 (6)
- 开发工具 (5)
- 测试 (2)
- Exception (0)
- 定时器 (3)
- j2ee (2)
- 部署 (1)
- Openssl (1)
- 操作系统 (3)
- kvm (13)
- libvirt (5)
- PostgreSql (5)
- 虚拟化 (3)
- 概念理解 (1)
- virt-manager (1)
- RESTful (3)
- 其它 (4)
- ssh2 (14)
- windows (1)
- 房产 (2)
- svn (1)
- 手机 (1)
- ant (1)
- flume (2)
- sqoop (1)
- fastdfs (5)
- log4j (1)
- SPDY (1)
- mongodb (2)
- MQ (2)
- Mina (1)
- dubbo (4)
- PMP (1)
- Webshpere (2)
- jvm (1)
- Btrace (1)
- zookeeper (7)
- UML (1)
- spring cloud (6)
- spring boot (5)
- storm (0)
- 软件管理 (1)
- elasticsearch (1)
- 协议 (2)
- docker (1)
- 性能 (2)
- 安全 (1)
- 代码规范 (1)
- mqtt (1)
- lombok (1)
- 车联网 (1)
- kafka (1)
最新评论
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);
}
}
}
(看了源码,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);
}
}
}
发表评论
-
通过expect,读取配置文件,批量ssh-add
2013-10-29 09:16 10371.配置文件(多台宿主机) id_dsa.txt id_dsa ... -
批量部署ssh认证
2013-10-28 16:10 855批量部署ssh认证 我想 ... -
ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
2013-10-28 15:49 319使用下例中ssky-keygen和ssh-copy-id,仅需 ... -
ubuntu下添加各种类别的启动项
2013-10-25 10:55 552原文地址:http://www.cnblo ... -
2010-08-30 19:00 linux下添加自动启动项
2013-10-25 10:37 567首先写好脚本,如 mysql,把它放到 /etc/init.d ... -
ubuntu 添加开机自动运行脚本
2013-10-25 10:26 5911.编写shell脚本 gedit /etc/init.d/m ... -
Linux下利用expect实现自动交互
2013-10-25 10:01 537首先要安装tcl,expect 下面是Linux下s ... -
最新SSH自动登录方案(RSA)
2013-10-25 08:51 822一. 前言 直接使用ssh连接到服务器时,需要手动输入 ... -
ssh密钥管理和认证代理
2013-10-24 15:46 816ssh密钥管理和认证代理 ... -
CentOS通过Ssh连接缓慢的问题
2013-10-24 15:31 498之前安装系统使用了CentOS,发现安装之后ssh速度 ... -
解决 Agent admitted failure to sign using the key 问题 with ssh
2013-10-23 10:36 591配置ssh 之前要在本机上装上ssh,可以通过sudo ap ... -
Java SSH远程执行Linux Shell脚本实现(转)
2013-10-11 15:25 1037此程序需要ganymed-ssh2-build210.jar包 ... -
ubuntu 默认防火墙安装、启用、查看状态
2013-10-10 12:05 647ubuntu 9.10默认的是UFW防火墙,已经支持界面操作了 ...
相关推荐
ssh初步整合实现邮件的发送和上传文件的功能,代码直接导入的myeclipse中,并且改下邮箱就可运行,这个项目是我自学时做的,用了两种方式,还有一种方式下次再发
SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是目前比较流行的一种Java Web开源框架。 SSH主要用于Java Web的开发。现在SSH有SSH1和SSH2两种,区别在于Struts的版本是struts1.x还是2.x。
本资源是一个最简单的一个ssh框架实例,包含完整的代码(dao层有annotation和xml两种实现方式修改applicationContext.xml和hibernate.cfg.xml相应位置就可以切换),数据库ssh.sql文件,和所有的jar包,运行于eclips...
JAVA-SSH面试题:1.谈谈你mvc的理解,2.struts1.2和struts2.0的区别?如何控制两种框架中的单例模式?,3.Hibernate缓存
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
该框架是SSH2框架搭建,Spring3+hibernate3+JPA2,全注解实现。使用oracle数据库(包中包含创建语句),数据库访问层dao使用hibernate+jpa和jdbctemplate两种方式实现。并包括log4j,filter拦截器等技术。
毕业设计,基于SSH2+MySql+Bootstrap+EasyUI开发的花卉鲜花购物网站,内含Java完整源代码,数据库脚本 JSP基于SSH2花卉鲜花购物网站设计毕业源码案例设计 开发技术:myEclipse/Eclipse/Idea都可以,采用SSH框架 ...
基于javaEE健康管理系统SSH毕业论文文档+java源码文件+视频说明,javaEE健康管理系统主要功能包括:教师登录退出、教师饮食管理、教师健康日志、体检管理等等。本系统结构如下: (1)用户模块: 实现登录功能 ...
WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
用户注销 非正常退出 session失效 三种情况来进行 控制 分别使用了两种方式 进行了实现1:不修改数据库使用HashMap+HttpSessionListener 2:给数据库添加online列 使用(数据库脚本包含在内)HashMap+...
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
远程连接服务器的两种方式,telnet和ssh两种,还提供了执行命令的接口
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
针对糖尿病和高血压两种疾病,利用数学线性回归的方法,模拟计算出教师患病概率。 (6) 后台管理员模块 管理员用户登录功能:通过账号登录系统。 管理员管理教师功能:可以增删改查教师基本信息。 管理员管理...
WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
1、jsp两种跳转方式 2、struts标签库有哪些 3、struts主要类有哪几个 4、数据库事务有什么用、什么是ACID 航天信息有限公司 1。List与Set的相同与不同之处,分别举出两个这两个接口的常用方法。(10分) 2。谈谈...