首先确定已经
开发板已与路由器相连,并进行了必要的网络配置,可以ping通本机
1. 下载需要的源码,直接google最新的版本吧
mkdir ~/work/fs ;mkdir -p ~/work/source
下载zlib: zlib-1.2.3.tar.gz
下载ssl : openssl-0.9.8d.tar.gz
下载ssh : openssh-4.6p1.tar.gz
2. 编译:
cd ~/work/source
(1) 编译zlib :
tar zxvf zlib-1.2.3.tar.gz -C .
cd zlib-1.2.3/
./configure –prefix=/root/work/fs/zlib-1.2.3
修改Makefile :
CC=gcc 改为:
CROSS=/usr/local/arm/4.3.2/bin/arm-linux - ###这里的4.3.2依据自己的linux内核不同
CC= $ ( CROSS) gcc
LDSHARED= gcc 改为: LDSHARED= $ ( CROSS) gcc
CPP= gcc - E 改为 : CPP= $ ( CROSS) gcc - E
AR= ar rc 改为: AR= $ ( CROSS) ar rc
开始编译: make;
make install
(2) 编译openssl:
tar zxvf openssl- 0. 9. 8d.tar.gz
cd openssl-0.9.8d.tar.gz
. / Configure --prefix= /root/work/fs/openssl- 0. 9. 8d
os/ compiler: /usr/local/arm/4.3.2/bin/arm- linux- gcc
make
make install
(3) 编译openssh:
tar zxvf openssh-4.6p1.tar.gz
cd openssh-4.6p1/
./configure –host=arm-linux –with-libs –with-zlib=/root/work/fs/zlib-1.2.3
-with-ssl-dir=/root/work/fs/openssl-0.9.8d –disable-etc-default-login
CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc AR=/usr/local/arm/4.3.2/bin/arm-linux-ar
make
####不要make install
3. 安装
(1) 将 openssh-4.6p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下
(2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin 目录下
copy sftp-server ssh-keysign 到/usr/local/lib
(3) 在目标板下:
mkdir -p /usr/local/etc/
然后将openssh下的sshd_config , ssh_config 拷贝到该目录下
mkdir -p /var/run; mkdir -p /var/empty/sshd
chmod 755 /var/empty
(4)在主机上:
ssh-keygen -t rsa1 -f ssh_host_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N "" ###一个都不能少
将生存的 ssh_host_* 6个文件copy到目标板的 /usr/local/etc/目录下
####Copy过来之后需要查看一下这几个文件的所有者,如果不是root需要修改所有者和所##在的组,chown
(5) 添加用户:
将主机上 /etc/ 目下的 passwd, shadow, group 三个文件copy到目标板的 /etc 目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh
###这一步以后,开发板上的用户结构与你本机的结构就是一样的了,所以在cp之前先把你自己的root密码设好
//###passwd设置root密码,然后在把上面3个文件cp到开发板/etc下
其实可以删除不需要的一些用户。
4.测试
目标板启动sshd: # /usr/sbin/sshd
//在开发板上运行这个命令的时候可能会提示
//Privilege separation user sshd does not exist
//需要在开发板的系统里adduser shhd
刚开始在编译ssh时候总是过不了,出现gcc配置问题,host文件缺少问题,等等,查阅很多资料,浪费很多时间,最后都是不细心,不了解很多细节。切忌。