嵌入式linux系统中移植SSH

2019-07-12 14:10发布

1.下载zlib-1.2.3.tar.gz,dropbear-0.52.tar.gz
2.交叉编译zlib-1.2.3.tar.gz解压zlib-1.2.3.tar.gz,创建(HOME)/usr/local/zlib./configureprefix=(HOME)/usr/local/zlib
修改Makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
RANLIB=arm-linux-ranlib
make;make install;
3.交叉编译dropbear-0.52.tar.gz
解压dropbear-0.52.tar.gz,创建/usr/local/dropbear;
./configure –prefix=(HOME)/usr/local/dropbearwithzlib=(HOME)/usr/local/zlib/ CC=arm-linux-gcc –host=arm
make;
make scp;
make install;
cp scp /usr/local/dropbear/bin/
4.移植到板子:
(HOME)/usr/local/dropbear/bin/(HOME)/usr/local/dropbear/sbin/下的文件都复制到板上/usr/sbin目录。
在板上生成server key:
cd /etc
mkdir dropbear
cd dropbear
dropbearkey -t rsa -f dropbear_rsa_host_key
dropbearkey -t dss -f dropbear_dss_host_key
在启动脚本/etc/init.d/rcS中增加: /usr/sbin/dropbear
5.配置ssh:
修改root密码(如果无法修改请在/etc中添加passwd与group文件)
pwsswd文件中如下
root:9.iWjoCN45yCg:0:0:Linux User,,,:/root/:/bin/sh
我这里测试goup文件空的也可以
运行dropbear -p 22
6.可以在自己的虚拟机里ssh root@ip
7.注:
如果连接出现以下问题:
root@10.17.98.2’s password:
PTY allocation request failed on channel 0
shell request failed on channel 0
解决方法:
在dev中创建pts目录:mkdir /dev/pts -p
在fstab文件中添加一段 none /dev/pts devpts defaults 0 0

vi /etc/fstab

none /dev/pts devpts defaults 0 0
然后 mount -a
或者是PTY服务没有开,在内核目录中make menuconfig,搜PTY,打开对应选项,我那平台当时打开的是Legacy (BSD) PTY support