日期:2014-05-16  浏览次数:20793 次

嵌入式linux系统中移植SSH

硬件平台:s3c6410(arm)

操作系统:linux

一直用的串口调试机器,不过有线的串口也有不方便之处,调试设备必须抱着笔记本,所以想办法把SSH移植到机器中

 

Dropbear是一个相对较小的SSH服务器和客户端。它运行在一个基于POSIX的各种平台。 Dropbear是开源软件,在麻省理工学院式的许可证。 Dropbear是特别有用的“嵌入”式的Linux(或其他Unix)系统,如无线路由器。(一个完整的openssh大小有7M左右)

 参阅官网:https://matt.ucc.asn.au/dropbear/dropbear.html

准备

zlib-1.2.3.tar.gz 点击进入下载地址

dropbear-0.52.tar.gz 点击进入下载地址

1.交叉编译zlib-1.2.3.tar.gz

解压zlib-1.2.3.tar.gz,创建/usr/local/zlib目录;

./configure --prefix =/usr/local/zlib

修改Makefile

CC=arm-linux-gcc

AR=arm-linux-ar rc

RANLIB=arm-linux-ranlib

make;make install;

2.交叉编译dropbear-0.52.tar.gz

解压dropbear-0.52.tar.gz,创建/usr/local/dropbear;

./configure –prefix=/usr/local/dropbear –with-zlib=/usr/local/zlib/ CC=arm-linux-gcc –host=arm

注:这里要求使用绝对路径-如果希望放在home目录可以使用${HOME}/usr/locale/zlib与${HOME}/usr/locale/dropbear

make;

make scp;

make install;

cp scp /usr/local/dropbear/bin/

3.移植到6410:

将/usr/local/dropbear/bin/和/usr/local/dropbear/sbin/下的文件都复制到板上/usr/sbin目录。

在板上生成server key:

cd /etc
mkdir dropbear
cd dropbear
dropbearkey -t rsa -f dropbear_rsa_host_key
dropbearkey -t dss -f dropbear_dss_host_key

在启动脚本/etc/init.d/rcS中增加: /usr/sbin/dropbear

 

3.配置ssh:

修改root密码(如果无法修改请在/etc中添加passwd与group文件)

pwsswd文件中如下

root:9.iWjoCN45yCg:0:0:Linux User,,,:/root/:/bin/sh

我这里测试goup文件空的也可以

 

或者:

root状态下在板上输入命令添加用户michael和设置密码 //最好直接改root密码

adduser michael

 

注:

如果连接出现以下问题:

dragon@dragon-ubuntu10:/srv/nfs/rootfs/usr/local/dropbear/bin$ ssh 10.17.98.2 -l root
root@10.17.98.2's password: 
PTY allocation request failed on channel 0
shell request failed on channel 0

解决方法:

在dev中创建pts目录:mkdir /dev/pts -p

在fstab文件中添加一段 none /dev/pts devpts defaults 0 0

#vi /etc/fstab

none    /dev/pts devpts defaults        0       0

然后 mount -a

问题应该能够得到解决


 

用xshell连接就能连上去了~ 如果不行的话直接用root用户试试~