移植dropbear 实现ssh远程登录功能

https://www.cnblogs.com/liangwode/archive/2016/08/25/5807900.html

 

zlib使用 zlib-1.2.8 (实际使用的是原系统自带的zlib-1.2.5)

http://matt.ucc.asn.au/dropbear/(使用的是dropbear-2018.76.tar.bz2)

 

目标环境:

CPU:ARM

内核版本:4.X

工具下载:

    zlib-1.2.8

    dropbear-2016.74.tar.bz2

 

 

第一步:编译zlib-1.2.8

 

    下载zlib-1.2.8.tar.gz,笔者将其放在/home/liangwode/test目录下。

 

mkdir -pv build/zlib build/dropbear

tar xvzf zlib-1.2.8.tar.gz

cd zlib-1.2.8

 

  进入解压缩后的zlib目录,配置zlib

 

./configure --prefix=/home/liangwode/test/build/zlib

 

  修改生成的Makefile

 

CC=arm-linux-gnueabi-gcc(根据所使用的交叉工具链修改)

AR=arm-linux-gnueabi-ar

RANLIB=arm-linux-gnueabi-ranlib

LDCONFIG=arm-linux-gnueabi-ldconfig

LDSHARED=$(CC) -shared -Wl,-soname,libz.so.1,--version-script,zlib.map

CPP=$(CC) -E

 

  编译并安装

 

make && make install

 

 

  在/home/liangwode/test/build/zlib下就生成了zlib库的相关文件

 

 

 

第二步:编译dropbear

 

  回到/home/liangwode/test,解压缩dropbear

 

bzip2 -d dropbear-2016.74.tar.bz2

tar xvf dropbear-2016.74.tar

 

  进入dropbear目录,配置dropbear

 

cd dropbear-2016.74

./configure --prefix=/home/liangwode/test/build/dropbear --with-zlib=/home/liangwode/test/build/zlib CC=arm-

linux-gnueabi-gcc --host=arm

 

  编译并安装

 

make

make scp

make install

 

  拷贝scp到安装目录

 

cp scp /home/liangwode/test/build/dropbear/bin

  

 

第三步:移植到目标板

 

  先挂载目标板的根文件系统,笔者使用TF卡,分了两个区,一个是boot,一个是sysroot

 

mount /dev/sdc2 /mnt/sysroot

 

  拷贝库及可执行文件到目标系统

 

cp -frP /home/liangwode/test/build/zlib/lib/* /mnt/sysroot/usr/lib

cp -fP /home/liangwode/test/build/dropbear/bin/* /mnt/sysroot/usr/sbin

cp -fP /home/liangwode/test/build/dropbear/sbin/* /mnt/sysroot/usr/sbin

sync

 

  卸载SD卡,并启动目标板

 

umount /mnt/sysroot

 

  创建dropbear配置目录,并生成密钥

 

mkdir /etc/dropbear

cd /etc/dropbear

dropbearkey -t rsa -f dropbear_rsa_host_key

dropbearkey -t dss -f dropbear_dss_host_key

 

  添加系统启动服务

 

vi /etc/init.d/rcS

添加

/usr/sbin/dropbear

  

  重启目标板,用PC通过ssh远程登录即可(用已有的账号密码)。

修改用户密码直接passwd 即可。

上面我是直接在linux下用tar cvf lib.tar lib/ 打包后,通过TFTP下载到板子在解压,tar xvf lib.tar,然后在拷贝过去。

你可能感兴趣的:(linux学习)