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,程序不再接受你下面的命令了。
相关推荐
在本学习笔记中,我们将专注于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 MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...
Apache MINA SSHD(Secure Shell Daemon)是Apache MINA项目的一部分,它是一个开源的Java实现的SSH服务器和客户端框架。这个“修改版”可能是指针对原版MINA SSHD进行了一些定制化或优化的工作,以适应特定的需求...
在学习Apache Mina时,首先要理解其核心组件和设计模式。Mina的核心组件包括Session、Filter、ProtocolCodec等。Session代表了客户端和服务器之间的连接,Filter则提供了数据处理链,ProtocolCodec则用于将应用层的...
对于希望提高网络应用性能或熟悉Java NIO编程的开发者来说,Apache Mina 2.0.4的源码分析是一次宝贵的学习机会。你可以通过阅读源码学习到如何有效地处理高并发场景,如何设计和实现高效的网络协议,以及如何利用...
深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...
Apache Mina作为一个活跃的开源项目,拥有强大的社区支持。开发者可以在社区中寻求帮助,分享经验,共同解决遇到的问题,推动项目的持续发展。 总的来说,Apache Mina是一个强大的工具,它简化了网络编程的复杂性,...
Apache Mina是一个开源项目,主要用于构建高性能、高可用性的网络通信应用。它是Java语言开发的,提供了一套简单而强大的API,使得开发者可以方便地创建网络服务器和客户端应用程序。Mina的目标是简化网络编程,使其...
Apache Mina是一个基于Java的网络通信框架,专为高性能、高可用性和可扩展性而设计。这个框架使得开发者能够轻松地构建网络应用,如TCP/IP和UDP协议的服务器和客户端。下面将详细介绍Mina的基本概念、核心接口以及...
Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是基于TCP和UDP协议的应用。它提供了高度可扩展和高性能的非阻塞I/O模型,使得...
最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。 引言 1 一. Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长...
Apache MINA SSHD是一个开源项目,提供了一个纯Java实现的SSH-2协议服务器和客户端。它允许开发者轻松地构建自己的SSH服务,包括SFTP服务器。SSHD支持多种身份验证方式,包括密码和密钥对验证,这使得它在安全性方面...
Apache MINA是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。 当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版...
最新的Apache Mina v2.0.8 API手册,chm格式,2014年9月下旬制作。
通过这些资料的学习,开发者不仅可以掌握MINA的基本使用,还能深入了解其设计思想和实现方式,同时还能学习到如何在实际项目中利用Spring框架的优势,提升MINA应用的开发效率和质量。对于任何希望涉足网络服务开发,...
Apache SSHD库是Apache MINA项目的一部分,MINA是一个网络应用框架,用于构建高性能和高可用性的网络服务器和客户端。SSHD库提供了SSH服务器和客户端的实现,包括公钥认证、密码认证、会话管理等功能。以下是这个...
apache-mina-2.0.4 架包 源码 学习教程.apache mina是Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序...
实例开始前,你需要确保已经下载并导入Apache Mina的库到你的项目中。通常,你可以通过Maven或Gradle来管理依赖,或者直接从官方网站下载JAR文件。 接下来,我们创建一个基本的服务器端实现: 1. **创建IoAcceptor...
1. **下载使用的Jar包**:在开始Mina2.0的学习之前,你需要从Apache官网或其他可靠的源下载Mina的最新版本库。通常,这包括核心库和其他依赖库,如slf4j用于日志记录。 2. **工程创建配置**:创建一个新的Java项目...