向嵌入式linux开发机移植dropbear
最近出于项目需要,不再使用telnet协议来远程操控嵌入式linux开发机,而需要使用有一定安全要求的SSH协议,做记录以备将来回顾。
2016-8-16
背景
- 嵌入式linux平台:freescale i.mx6q
- 宿主机系统:ubuntu 14.04
- 嵌入式linux系统:linux 3.0.35
- ssh程序:dropbear
基本情况
linux系统中常用的SSH软件是openSSH,由于openSSH略显庞大,后选择轻量级的dropbear替换openSSH。
dropbear实现完整的SSH客户端和服务器版本2协议,不支持SSH版本1协议,以节省空间和资源,并避免在SSH版本1中出现的固有的安全漏洞,而且也支持SCP。
步骤
1.宿主机操作:
下载并解压dropbear,我使用的是dropbear-2016.74,下载链接https://matt.ucc.asn.au/dropbear/releases/dropbear-2016.74.tar.bz2
下载并解压zlib,我使用的是zlib-1.2.8,下载链接http://zlib.net/zlib-1.2.8.tar.gz ,以上这两个软件是必须用的,可以谷歌官网去下载其他更新的版本。
-
交叉编译zlib。进入zlib解压后的目录,执行:
~/zlib # mkdir /usr/local/zlib/
~/zlib # ./configure --prefix=/usr/local/zlib
~/zlib # vim Makefile修改Makefile内容如下:(请配置为自己的交叉编译工具)
CC=arm-fsl-linux-gnueabi-gcc
AR=arm-fsl-linux-gnueabi-gcc
RANLIB=arm-linux-gnueabi-ranlib
CPP=arm-linux-gnueabi-gcc然后保存退出,终端执行:
~/zlib # make
~/zlib # make installzlib将会编译安装到
/usr/local/zlib/
路径下,安装软件用系统权限。 -
交叉编译dropbear。进入dropbear解压后的目录,执行:(配置为自己的交叉编译工具)
~/dropbear # mkdir /usr/local/dropbear/
~/dropbear # ./configure --prefix=/usr/local/dropbear --with-zlib=/usr/local/zlib/ CC=arm-fsl-linux-gnueabi-gcc --host=arm
~/dropbear # make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
~/dropbear # make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install注意,这里如果不加PROGRAMS参数的话,编译结果里是没有scp的,如果不加这个参数还需要编译scp,可以再单独自己编译scp和安装scp,如下:
~/dropbear # make scp
~/dropbear # cp scp /usr/local/dropbear/bin/
2.将/usr/local/dropbear/bin/
和/usr/local/dropbear/sbin/
下的文件都复制到linux开发机的/usr/sbin/
目录下。在开发机上执行:
~ # cd /etc
~/etc # mkdir dropbear
~/etc # cd dropbear
~/etc/dropbear # dropbearkey -t rsa -f dropbear_rsa_host_key
~/etc/dropbear # dropbearkey -t dss -f dropbear_dss_host_key
在启动脚本/etc/init.d/rcS
中加入:
/usr/sbin/dropbear
3.另外,可能还需要新建账户和设置密码,有问题解决问题即可。
遇到的问题
- scp没有被编译进去,已经解决,并在上文中修正。
- 当dropbear正常工作时需要设置root的密码,但设置密码后原来的ftp就不能工作了,虽然不是dropbear的问题,还是记录在这里。
参考网址
- 轻量级SSH-Dropbear在嵌入式linux上的移植http://www.ithao123.cn/content-10004995.html
- 嵌入式linux系统中移植SSH http://www.2cto.com/os/201303/193960.html
- MIPS下交叉编译dropbear http://www.ahlinux.com/embed/19758.html