向嵌入式linux开发机移植dropbear

时间:2021-04-19 18:40:12

向嵌入式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 install

    zlib将会编译安装到/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的问题,还是记录在这里。

参考网址