一 Orion SSH2 介绍
一 概述 Orion SSH2 是一个纯 Java 实现的 SSH-2 协议包,可让 Java 程序透过 SSH 协议连接到服务器上执行远程命令和文件传输功能. Jar包orion-ssh2-214.jar
源码包orion-ssh2-214.tar.gz
源码包下有example目录,包含所有最常用的使用方式,下面的说明也是参考这个的.
二 原理介绍
SSH协议是建立在应用层和传输层基础上的安全协议,它主要由以下三部分组成,共同实现SSH的安全保密机制. 传输层协议,它提供诸如认证、信任和完整性检验等安全措施,此外它还可以任意地提供数据压缩功能.通常情况下,这些传输层协议都建立在面向连接的TCP数据流之上. 用户认证协议层,用来实现服务器的跟客户端用户之间的身份认证,它运行在传输层协议之上. 连接协议层,分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之上. 当安全的传输层连接建立之后,客户端将发送一个服务请求.当用户认证层连接建立之后将发送第二个服务请求.这就允许新定义的协议可以和以前的协议共存.连接协议提供可用作多种目的通道,为设置安全交互Shell会话和传输任意的TCP/IP端口和X11连接提供标准方法 第一次连接机器时,服务端会返回host key ,并以fingerprint的形式显示出来,让你确认,如下: RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d 确认能够连接该机器后,会将服务器的host key存到本地文件know_hosts中,以后再次访问时,直接会使用存的host key来验证服务器的合法性 $ tail -1 $HOME/.ssh/known_hosts ssh-server.example.com,12.18.429.21 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0 6jFqviLMMJ/GaJNhGx/P6Z7 4aJIfUqcVjTGQasS1daDYejcfOAWK0juoD zS3BsGKKYKPA 5Gc5M8v 3NHLbPn1yTpDBgl6UzA0iiMPCbwnOLx61MrBTk /qJI9kyDaJf4LEY6Chx4IJP0 ZN5NmAlCtXQsca3jwFAF72mqPbF8= 之后,就是验证登录用户的合法性,一般有以下方式普通主要使用方式:
P.S.关于ssh host key protection,可参考:http://www.symantec.com/connect/articles/ssh-host-key-protection 第一种方式(基于口令的安全验证),只要你知道自己的帐号和口令,就可以登录到远程主机 第二种方式(基于密匙的安全验证),需要依靠密匙,也就是你为自己创建一对密匙,并把公有密匙放在需要访问的服务器上(一般存在服务器的authorized_keys文件中) 之后,就可以通过一个连接,建立多个session(即一个连接,可对应于多个通道),来执行命令,或者脚本. 二 例子使用说明(参考例子Basic.java,PublicKeyAuthentication.java) 1通过ssh协议,登录机器执行命令或者脚本(注意环境变量,ssh登录只读取shell的配置,即.bashrc) <1>新建一个物理的TCP/IP连接 Connection conn = new Connection(ip); conn.connect(); <2>登录用户验证 boolean isAuthenticated = conn.authenticateWithPassword(username, password); 3 其他使用方式 主要有使用代理,端口转发功能,,使用host-key来验证,可能用的不多
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |