`
tmj_159
  • 浏览: 707336 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

apache mina 学习笔记三(子项目SSHD)

 
阅读更多

SSHD 是apache mina的一个子项目,它提供了客户端和服务器端使用SSH协议的功能。当然它也是基于MINA的。

官网地址

http://mina.apache.org/sshd-project/index.html

 

当我们从其他平台访问Linux的时候,通常会用某些工具,比如xmanager,putty之类的东西。

这些工具用的就是SSH协议连接到linux上的,当然Linux 机器上必须启动SSHD的守护进程。

 

因为一般情况下我们连接sshd服务用的多,而用java作为sshd服务用的少,所以下面例子就是作为一个客户端去连接linux的情况。

 

一、下载

首先我们需要上官网下载一个可用版本,目前来说最新的版本是0.10.1。

本例所需JAR包

mina-core-2.0.7.jar

slf4j-api-1.6.4.jar

slf4j-jdk14-1.6.4.jar

sshd-core-0.10.1.jar

 

直接上代码了

package cn.tang.test.ssh;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;

import org.apache.sshd.ClientChannel;
import org.apache.sshd.ClientSession;
import org.apache.sshd.SshClient;
import org.apache.sshd.common.util.NoCloseInputStream;
import org.apache.sshd.common.util.NoCloseOutputStream;

public class SSHDTest {
	private static final int port = 22;

	public static void main(String[] args) throws InterruptedException, IOException {
		SshClient client = SshClient.setUpDefaultClient();
		client.start();
		
		ClientSession session = client.connect("root", new InetSocketAddress("192.168.74.137", port)).await().getSession();
		session.addPasswordIdentity("111111");
		session.auth();
		ClientChannel channel =session.createShellChannel();
		channel.setOut(new NoCloseOutputStream(System.out));
        channel.setErr(new NoCloseOutputStream(System.err));
        channel.setIn(new NoCloseInputStream(System.in));
		channel.open();

		channel.waitFor(ClientChannel.CLOSED, 0);
		channel.close(false);
		session.close(false);
		client.stop();
	}
}

 这里,我把进程的输入,输出,异常绑定到ssh的channel。

如果你想只发一次命令的话,用的是另外一种

//		ClientChannel channel = session.createExecChannel("ifconfig");

 如果你是用这种channel,程序不再接受你下面的命令了。

 

分享到:
评论
2 楼 tmj_159 2014-04-24  
sanhye 写道
求提供sshd-core-0.10.1.jar下载地址,官方的网址一直下载不了 郁闷啊

我把这个JAR放到附件了
1 楼 sanhye 2014-04-24  
求提供sshd-core-0.10.1.jar下载地址,官方的网址一直下载不了 郁闷啊

相关推荐

    apache mina 学习笔记三(子项目FtpServer)

    在本学习笔记中,我们将专注于MINA的子项目——FtpServer,它是实现FTP服务器功能的一个模块。 FTP(File Transfer Protocol)是一种广泛使用的互联网协议,用于在不同主机之间传输文件。Apache MINA FtpServer提供...

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    Apache mina2学习笔记DEMO

    在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...

    apache Mina SSHD 修改版

    Apache MINA SSHD(Secure Shell Daemon)是Apache MINA项目的一部分,它是一个开源的Java实现的SSH服务器和客户端框架。这个“修改版”可能是指针对原版MINA SSHD进行了一些定制化或优化的工作,以适应特定的需求...

    apache Mina的完整学习资料

    在学习Apache Mina时,首先要理解其核心组件和设计模式。Mina的核心组件包括Session、Filter、ProtocolCodec等。Session代表了客户端和服务器之间的连接,Filter则提供了数据处理链,ProtocolCodec则用于将应用层的...

    apache-mina-2.0.4.rar_apache mina_mina

    对于希望提高网络应用性能或熟悉Java NIO编程的开发者来说,Apache Mina 2.0.4的源码分析是一次宝贵的学习机会。你可以通过阅读源码学习到如何有效地处理高并发场景,如何设计和实现高效的网络协议,以及如何利用...

    关于apache Mina Server

    深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...

    Apache Mina帮助文档

    Apache Mina作为一个活跃的开源项目,拥有强大的社区支持。开发者可以在社区中寻求帮助,分享经验,共同解决遇到的问题,推动项目的持续发展。 总的来说,Apache Mina是一个强大的工具,它简化了网络编程的复杂性,...

    Apache Mina 入门Demo

    Apache Mina是一个开源项目,主要用于构建高性能、高可用性的网络通信应用。它是Java语言开发的,提供了一套简单而强大的API,使得开发者可以方便地创建网络服务器和客户端应用程序。Mina的目标是简化网络编程,使其...

    Mina学习笔记

    Apache Mina是一个基于Java的网络通信框架,专为高性能、高可用性和可扩展性而设计。这个框架使得开发者能够轻松地构建网络应用,如TCP/IP和UDP协议的服务器和客户端。下面将详细介绍Mina的基本概念、核心接口以及...

    apache mina实例免费下载

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是基于TCP和UDP协议的应用。它提供了高度可扩展和高性能的非阻塞I/O模型,使得...

    Apache_Mina2.0学习笔记

    最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。 引言 1 一. Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长...

    基于sshd构建sftp服务器

    Apache MINA SSHD是一个开源项目,提供了一个纯Java实现的SSH-2协议服务器和客户端。它允许开发者轻松地构建自己的SSH服务,包括SFTP服务器。SSHD支持多种身份验证方式,包括密码和密钥对验证,这使得它在安全性方面...

    Apache Mina核心jar包:mina-core-2.0.7

    Apache MINA是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。 当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版...

    Apache Mina v2.0.8 API手册

    最新的Apache Mina v2.0.8 API手册,chm格式,2014年9月下旬制作。

    Apache MINA框架相关资料

    通过这些资料的学习,开发者不仅可以掌握MINA的基本使用,还能深入了解其设计思想和实现方式,同时还能学习到如何在实际项目中利用Spring框架的优势,提升MINA应用的开发效率和质量。对于任何希望涉足网络服务开发,...

    基于Java的实例开发源码-SSH服务端 Apache SSHD.zip

    Apache SSHD库是Apache MINA项目的一部分,MINA是一个网络应用框架,用于构建高性能和高可用性的网络服务器和客户端。SSHD库提供了SSH服务器和客户端的实现,包括公钥认证、密码认证、会话管理等功能。以下是这个...

    apache-mina-2.0.4架包及源码各pdf学习教程

    apache-mina-2.0.4 架包 源码 学习教程.apache mina是Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序...

    Apache Mina简单实例

    实例开始前,你需要确保已经下载并导入Apache Mina的库到你的项目中。通常,你可以通过Maven或Gradle来管理依赖,或者直接从官方网站下载JAR文件。 接下来,我们创建一个基本的服务器端实现: 1. **创建IoAcceptor...

    MIna2.0学习笔记

    1. **下载使用的Jar包**:在开始Mina2.0的学习之前,你需要从Apache官网或其他可靠的源下载Mina的最新版本库。通常,这包括核心库和其他依赖库,如slf4j用于日志记录。 2. **工程创建配置**:创建一个新的Java项目...

Global site tag (gtag.js) - Google Analytics