Chinaunix首页 | 论坛 | 博客
  • 博客访问: 316799
  • 博文数量: 90
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 694
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-22 10:51
文章分类

全部博文(90)

文章存档

2011年(3)

2010年(35)

2009年(52)

我的朋友

分类: 嵌入式

2010-12-21 18:31:57

以下文字大多数翻译自CodePlex,其中提供了一个WINCE5.0下基于ARMV4I编译的SSH服务器,下载二进制程序放到板子上就可以运行,但是感觉远程shell做的不是太好。

什么是SSH

SSH是在本地电脑和远程电脑之间建立安全网络通道的标准指令集。它使用公共密钥加密的方法授权远程计算机登录并且寻求远程计算机授权用户(可选)。SSH在两台电脑之间利用加密和消息认证码(message authentication codes ,MACs)提供机密的和完整的数据交换。SSH通常用于登录远程机器并且执行命令,同时它也支持tunnelingforwarding arbitrary TCP port; 它也可以通过SFTPSCP协议来实现文件传送。

在下面的RFC中描述:

aSSH传输层协议(RFC4253

bSSH认证协议(RFC4252

cSSH协议架构(RFC4251

总之,SSH的本职是提供一种安全的telnetftptunneling。安全的意思是使用了用户认证和加密的数据交换。

 SSHOpenSSH关系

SSH的英文全称是Secure Shell Protocol,安全外壳协议。 通过使用SSH,你可以把所有传输的数据进行加密,这样中间人这种攻击方式就不可能实现了,而且也能够防止DNSIP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftppop、甚至ppp提供一个安全的通道SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSHOpenSSHSSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSHSSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。

为什么选择使用OpenSSH移植到WINCE

WINCE上使用的SSH Server是基于OpenSSH v4.3最初由Tatu Ylonen开发的。由三个原因在WINCE上使用OpenSSH

1OpenSSH Server是网络上比较流行的SSH Server 

 2OpenSSH 是一个开源,易移植的SSH Server在多种类unixOS上使用;

 3OpenSSH已经支持了SSH Server具有的特性。

此服务器支持SSH的什么版本

SSH协议有两个版本,WINCE上移植的SSH Server仅支持最新的SSH2协议,因为此协议普遍的支持。

 在图中1.99意思是服务器同时被SSH1SSH2支持。

用户管理怎么实现当前在SSH

 Server中并不支持每一个用户一个目录。在OpenSSH软件中用户密钥保存在用户文件夹或者由系统处理。因为WINCE系统并不提供这种特性,所以这个软件目前并没有实现这部分功能,密钥对于任何用户都是一样的。

结论:公共密钥对于所有用户是一样的。

支持特性

远程Shell

远程程序执行

Secure FTPSFTP

Secure Copy (SCP)

Port Forwarding

 

编译和使用

编译

这个工程设计被集成到Platform builder中。尽管可能通过EVC++或者Visual Studio编译但是当前并没有提供这样的工作区。

编译

1、从CodePlex得到源码

2、拷贝SSH文件夹到BSP目录

3、改变如下设置来适应你的平台:

 a 改变在SSH\ssh.cmn中的路径. 例如 : SSHPROJECTROOT_DIR = c:\wince500 \platform\myBSP\SSH

b、改变路径在SSH/SSHD/include/parhnames.h中定义的路径。例如:#define SSHDIR /Hard Disk/SSH Server将在此路径下寻找一些配置文件)。这个路径可以在注册表中被重写(HKEY_LOCAL_MACHINE\COMM\SSHD "SSHROOTDIR"="\MY\New\PATH").

1、添加CryptoAPI组件到PB工作区

2、编译(编译SSL库需要一些时间)

使用

1、  你需要创建一个目录,SSH将在这个目录中寻找配置文件(/Hard Disk/SSH,前面的例子中是这样的);

2、  你需要为你的server创建配置文件(sshd_config),和OpenSSH配置文件差不多除了个别关键字不支持外;

3、  你需要为你的Server创建DSA密钥;

4、  启动Server(执行sshd程序)。

注意:当你运行在debug模式下时候,你可能会遇到debugchk_open函数中。这里仅仅是用来警示开发者使用此函数的返回值必须小心。


我在使用此SSH服务器时,觉得有几点需要注意

1、因为是使用编译好的二进制文件所以一定要按照上面的路径做设置;

2、需要为系统添加一个用户;

3、此服务器可能和系统提供的telnet或ftp服务器有冲突;(在系统组件中添加了telnet和ftp服务器后SSH能够登录但是不能显示交互)

4、如果需要查看调试信息请在定制系统时候增加cmd窗口组件;

阅读(1698) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~