移植openssh至arm9嵌入式开发板

同学考研,买了块stmicroelectronic的arm9开发板没时间玩儿,就借给奶牛玩儿了,昨晚开始折腾,先从移植开始,最开始折腾的axel,比较容易移植。之后的今天就开始搞ssh的移植了,选择的openssh,从网上查了一些教程,虽然他们也写了也总结了,但是问题依旧是存在滴。好吧,奶牛就把自己做的总结下吧。 首先说移植的目的:有了ssh开机自动启动,就不用串口线来操作开发板了,可以节省很多时间,特别是文件传输的缓慢实在无法忍受。 移植过程: 下载相关源码: openssh:http://mirror.esc7.net/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz openssl:http://www.openssl.org/source/openssl-1.0.1c.tar.gz zlib:http://zlib.net/zlib-1.2.7.tar.gz 然后配置好交叉编译工具

mkdir?source?package?mkdir?package/zlib?mkdir?package/openssl?mv?openssh-6.p1.tar.gz?openssl-1.0.1c.tar.gz?zlib-1.2.7.tar.gz?./source?cd?source?tar?xzvf?openssh-6.p1.tar.gz?tar?xzvf?openssl-1.0.1c.tar.gz?tar?xzvf?zlib-1.2.7.tar.gz?

1.编译zlib

./configure?--prefix=/home/nenew/package/zlib?

修改Makefile

CC=arm-linux-gcc?AR=arm-linux-ar?CPP?=arm-linux-gcc?-E?LDSHARED=arm-linux-gcc?

就是讲gcc ar用arm-linux-gcc arm-linux-ar来代替

make?make?install?

2.编译openssl

./Configure?--prefix=/home/nenew/package/openssl?os/compiler:arm-linux-gcc?

这里可以直接指定交叉编译器,如果想知道哪些编译文件可以直接支持的话,一般./configure –help就可以看到说明

make?make?install?

3.编译openssh

./configure?--host=arm-linux?--prefix=/usr/local/openssh?--with-zlib=/home/nenew/package/zlib?--with-ssl-dir=/home/nenew/package/openssl?--disable-etc-default-login?--disable-strip?CC=arm-linux-gcc?AR=arm-linux-ar?

指定好了prefix为安装的目标目录,zlib与ssl的路径也就是我们刚才的安装路径,最后指定交叉编译器

make?

这里并不安装,理由是不需要安装,安装到本机也无法执行,因为我们是交叉编译,你也许会问,为什么不直接换个预置安装目录来安装呢?如果不动手做你是不会知道的,sshd启动的时候会去安装目录下的etc找配置文件滴,所以这个目录不要随便指定,网上那些教程很多这里的路径都是有问题的。 编译工作至此结束,可以开始移植openssh了。

mkdir?-p?usr/local/openssh?cd?usr/local/openssh?mkdir?etc?bin?cd?../../../?cp?scp??sftp??ssh??ssh-add??ssh-agent??ssh-keygen??ssh-keyscan?./usr/local/openssh/bin?cp?sshd_config?ssh_config?./usr/local/openssh/etc?mkdir?sbin?bin?cp?sshd?./sbin?cd?bin?ln?-s?/usr/local/openssh/bin/scp?ln?-s?/usr/local/openssh/bin/sftp?ln?-s?/usr/local/openssh/bin/ssh?ln?-s?/usr/local/openssh/bin/ssh-add?ln?-s?/usr/local/openssh/bin/ssh-agent?ln?-s?/usr/local/openssh/bin/ssh-keygen?ln?-s?/usr/local/openssh/bin/ssh-keyscan?cd?..?mkdir?-p?usr/local/libexec?cp?sftp-server??ssh-keysign?usr/local/libexec?mkdir?../final?cp?-r?bin?sbin?usr?../final?cd?../final?tar?czvf?openssh.tgz?./?

目录结构大体如下: 这就把需要拷贝的文件都准备好了,传到开发板的目录下,然后展开到/根。 这时候ssh并不能运行,还需要修改passwd与group文件,位置在/etc下,将sshd用户添加上。 passwd照着模样修改: sshd::15:50:::/bin/sh group照着模样修改: sshd:*:50: 这里的两个50要对应,是组的编号

mkdir?-p?/var/run/sshd 

然后就是配置ssh key了。

cd?/usr/local/openssh/etc?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-keygen?-t?ecdrsa?-f?ssh_host_ecdsa_key?-N?""?

现在执行/sbin/sshd应该就可以正常启动了。 如果想自动启动需要增加启动脚本与启动项。 启动脚本位置:/etc/rc.d/init.d/ 启动项配置文件:/etc/init.d/rcS 如何修改可以自己参照里面的实例。 至此就已经完成了移植工作了。ssh可以正常链接。对了,这里建议修改sshd_config哦,把允许root登录与空密码选项打开,因为可以方便,这个不是服务器,不需要太高的安全级别。

本文链接地址: 移植openssh至arm9嵌入式开发板

原创文章,转载请注明: 转载自奶牛博客

志在山顶的人,不会贪念山腰的风景。

移植openssh至arm9嵌入式开发板

相关文章:

你感兴趣的文章:

标签云: