准备: zlib-1.2.10.tar.gz,dropbear-2016.74.tar.bz2,交叉编译工具
setenv_zynq:
1.编译zlib
# source /data/toolchain/setenv/setenv_zynq
# tar zxvf zlib-1.2.10.tar.gz
# cd zlib-1.2.10/
# mkdir install
# ./configure --prefix=/root/dropbear/zlib-1.2.10/install --static
# make && make install
2.编译dropbear
# tar xjf dropbear-2016.74.tar.bz2
# cd dropbear-2016.74/
# mkdir install
# ./configure --prefix=`pwd`/install --with-zlib=`pwd`/../zlib-1.2.10/install CC=arm-xilinx-linux-gnueabi-gcc --host=arm-xilinx-linux-gnueabi
# make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
# make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
# tar zcvf dropbear.tar.gz ./install
3.配置
// 拷贝到 板子上,将程序放入到/usr/local下
# mkdir /etc/dropbear/
// 生成证书
# /usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
# /usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key
注:若出现连接拒接的情况,查看 机器上是否含有libnss.so的文件(根本原因是dropbear的代码之中使用到了getpwnam之类的函数调用之后无法获取passwd之中的密码;在编译器之中将libnss.so全部复制到文件系统的lib目录下)
ln -s /usrdata/install/sbin/libnss_compat-2.20.so /usr/lib/libnss_compat.so.2
ln -s /usrdata/install/sbin/libnss_hesiod-2.20.so /usr/lib/libnss_hesiod.so.2
ln -s /usrdata/install/sbin/libnss_nisplus-2.20.so /usr/lib/libnss_nisplus.so.2
ln -s /usrdata/install/sbin/libnss_nis-2.20.so /usr/lib/libnss_nis.so.2
ln -s /usrdata/install/sbin/libnss_dns-2.20.so /usr/lib/libnss_dns.so.2
ln -s /usrdata/install/sbin/libnss_files-2.20.so /usr/lib/libnss_files.so.2