openssh服务器移植到2440处理器上

openssh服务器移植到2440处理器上
openssh服务器移植到2440处理器上

移植openssh服务器到2440处理器上

作者:刘溯奇日期:2009-1-15 地点:南宁师专数计系

移植opensshd到友善之臂mini2440开发板上(CPU是s3c2440)

1. 环境

硬件环境:

Host:X86PC

Target:友善之臂mini2440开发板

软件环境:

Host:VMware虚拟机下的redhat linux 9.0(完全安装)

Target:arm-linux kernel:linux-2.6.13

Crosstool: arm-linux-gcc-3.4.1

2.准备以下源码包(下载)

下载zlib: https://www.360docs.net/doc/9617965127.html,/zlib-1.2.3.tar.gz

下载ssl: https://www.360docs.net/doc/9617965127.html,/source/openssl-0.9.8e.tar.gz

下载ssh: https://www.360docs.net/doc/9617965127.html,/openssh/portable/openssh-4.6p1.tar.gz

3.交叉编译

(1) 准备工作

在redhat linux 9.0下新建工作目录

mkdir /ssh 工作目录

cd /ssh 进入工作目录

mkdir compressed install source 再新建三个目录

mkdir intall/zlib-1.2.3 install/openssl-0.9.8e

compressed 用于存放源码包

install 软件安装目录

source 源码包解压目录

说明:把第2步下载的源码包放到compressed目录中

(2) 交叉编译zlib

cd /ssh/compressed/

tar xzvf zlib-1.2.3.tar.gz -C ../source

cd ../source/zlib-1.2.3

./configure --prefix=/ssh/install/zlib-1.2.3

修改Makefile:

CC=gcc 改为:

CROSS=/usr/local/arm/3.4.1/bin/arm-linux-

CC=$(CROSS)gcc

LDSHARED=gcc 改为: LDSHARED=$(CROSS)gcc

CPP=gcc -E 改为: CPP=$(CROSS)gcc -E

AR=ar rc 改为: AR=$(CROSS)ar rc

make

make install

(3) 交叉编译openssl

cd /ssh/compressed/

tar zxvf openssl-0.9.8e.tar.gz -C ../source

cd ../source/openssl-0.9.8e

./Configure --prefix=/ssh/install/openssl-0.9.8e os/compiler:/usr/loc

al/arm/3.4.1/bin/arm-linux-gcc

make

make install

(4)交叉编译openssh

cd /ssh/compressed

tar zxvf openssh-4.6p1.tar.gz –C ../source

cd ../source/openssh-4.6p1

./configure --host=arm-linux --with-libs --with-zlib=/ssh/install/zlib-1.2.3

--with-ssl-dir=/ssh/install/openssl-0.9.8e

--disable-etc-default-login CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar

make

##不要make install

4. 安装

(1) 将 openssh-4.6p1目录下的 sshd 拷贝到目标板的/usr/sbin目录下

(2) 再拷贝scp sftp ssh ssh-add ssh-agent ssh-keygen

ssh-keyscan 到目标板/usr/local/bin目录下

(3) 拷贝 sftp-server ssh-keysign 到/usr/local/libexec目录下

(4) 在目标板下:

mkdir -p /usr/local/etc/

mkdir -p /var/run;

mkdir -p /var/empty/sshd

chmod 755 /var/empty

然后将openssh-4.6p1下的sshd_config, ssh_config 拷贝到/usr/local/etc/目录下

(5)在主机上:(openssh-4.6p1目录下),用超级终端运行如下命令

ssh-keygen -t rsa1 -f ssh_host_key -N ""

ssh-keygen -t rsa -f ssh_host_rsa_key -N ""

ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

将生存的ssh_host_* 6个文件(即ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pu b ssh_host_rsa_key ssh_host_rsa_key.pub )拷贝到目标板的/usr/local/etc/目录下

(6)修改目标板根文件系统/etc目录下的 passwd 和group文件,添加上sshd用户和组,步骤如下:

cd /etc

vi passwd

在打开的passwd文件修改后如下所示:

root::0:0:root:/:/bin/sh

bin:*:1:1:bin:/bin:

daemon:*:2:2:daemon:/sbin:

nobody:*:99:99:Nobody:/:

sshd:*:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologi n―――添加sshd用户

vi group

在打开的group文件修改后如下所示:

root:*:0:

daemon:*:1:

bin:*:2:

sys:*:3:

adm:*:4:

tty:*:5:

disk:*:6:

lp:*:7:lp

mail:*:8:

news:*:9:

uucp:*:10:

proxy:*:13:

kmem:*:15:

dialout:*:20:

fax:*:21:

voice:*:22:

cdrom:*:24:

floppy:*:25:

tape:*:26:

sshd:*:74:-------------添加sshd组

sudo:*:27:

audio:*:29:

ppp:x:99:

(7)修改sshd_config文件如下选项,其他按默认配置:

# HostKey for protocol version 1

HostKey /usr/local/etc/ssh_host_key

# HostKeys for protocol version 2

HostKey /usr/local/etc/ssh_host_rsa_key

HostKey /usr/local/etc/ssh_host_dsa_key

PermitRootLogin yes――允许根用户登陆

PermitEmptyPasswords yes――允许使用空密码,即不需要密码UsePrivilegeSeparation no――把安全级别降低,因为不会连接互联网

# override default of no subsystems

Subsystem sftp /usr/local/libexec/sftp-server ――指定sftp服务路径,否则将不能启动sftp服务,将不能进行文件的上传和下载

(8)在开发板上(即目标板)启动sshd

此时的你只要等开发板启动好之后启动sshd服务了,使用绝对路径来启动。/usr/local/sbin/sshd

上述启动命令可以写进启动脚本文件里,我把它添加到开发板上的/etc/init.d/rcS脚本里,系统启动完后就能提供sshd服务。

5. 测试

目标板,即嵌入式开发板上启动了sshd服务之后,那么,就可以进行测试,看是否成功移植了opensshd服务,首先在XP系统下安装SSH Secure File Transfer Client客户端软件,安装完成后的启动之后的软件界面如下5-1所示,点击连接,在HostName 中输入开发板的IP地址,User Name中输入 root,然后进行连接,如果移植成功,连接到开发板的界面如图5-2和图5-3所示。图5-2显示的界面,可以进行文件的上传和下载,但图5-3不能。

图5-1 XP系统下的SSHD客服端登陆软件界面

图5-2 登陆到开发板上,显示的根文件系统目录

图5-3 登陆到开发板上,显示的根文件系统目录

6. 总结

移植openssh Server到开发板上,其添加的文件大小达到13M之多,这说明对嵌入式来说,显得有点偏大,但不管怎样,它提供了一条便捷的信息通道与开发板进行联系,而且很方便。

7. 参考资料

https://www.360docs.net/doc/9617965127.html,/jiangrays/113730/message.aspx#

https://www.360docs.net/doc/9617965127.html,/course/6_system/linux/Linuxjs/2008819/136559.htm l

@版权所有

(本篇完)

相关主题
相关文档
最新文档