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,程序不再接受你下面的命令了。
相关推荐
NULL 博文链接:https://tangmingjie2009.iteye.com/blog/2036903
Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)
这个是我学的apache mina2.0学习笔记的实例
apache Mina SSHD 修改版 详情: http://blog.csdn.net/hqy332211/article/details/8742796
apache mina的入门完整学习资料,附加中文参考手册。
Mina学习笔记。作者:李少华
深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个类 深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和...
Apache的Mina2.0学习笔记,对应学习用java做通讯程序的有帮助
mina学习笔记,记录所有API,mina学习笔记,记录所有API
Apache MINA 线程模型配置 Mina配置
收集整理的Apache Mina chm pdf教程和帮助文档
Apache MINA是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。 当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版...
最新的Apache Mina v2.0.8 API手册,chm格式,2014年9月下旬制作。
Apache MINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序。 apache-mina-2.0.7-bin.zip,apache-mina-2.0.7-src.zip,log4j-1.2.17.zip,slf4j-api-1.6.6.jar,slf4j-api-1.6.6-...
apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例
Apache MINA2实用手册 Apache MINA2实用手册
apache mina实例免费下载,有很多实例代码简单易懂欢迎大家下载!
一个Apache MINA使用案例源代码ApacheMina
apache mina chm 格式的api帮助文档。