作者: 使徒保罗
邮箱:[email protected]
声明: 欢迎交流学习,如有任何疑问,请通过邮箱联系本人
环境: ubuntu14.04 32位
功能: ssh 海思3531a交叉编译,使3531a板子支持scp协议,文件和windows通过WinSCP工具自由
的传输和拖拽
参考: https://www.itdaan.com/tw/96d6707f3cff
1.下载源码包
openssh http://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/
openssl https://www.openssl.org/source/old/1.0.1/
zlib http://www.zlib.net/
三个包的版本: openssh-6.2p1 openssl-0.9.8l zlib-1.2.11
2.创建工作目录
mkdir /work/ssh
cd /work/ssh
mkdir compressed install source
目录compressed用于存放源码压缩包
目录install用于软件安装目录
目录source 用于源码目录
将下载好的源码包放到compressed目录
并解压到source目录中去
3.交叉编译zlib
cd /work/ssh/source/zlib-1.2.11
./configure --prefix=/work/ssh/install/zlib-1.2.11
修改Makefile:
CC=arm-hisiv300-linux-gcc
AR=arm-hisiv300-linux-ar
CPP =arm-hisiv300-linux-gcc -E
LDSHARED=arm-hisiv300-linux-gcc
make
make install
4.交叉编译openssl
cd /work/ssh/source/openssl-0.9.8l
./configure --prefix=/work/ssh/install/openssl-0.9.8l os/compiler:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-gcc
make
make install
5.交叉编译openssh
cd /work/ssh/source/openssh-6.2p1
./configure --host=arm-hisiv300-linux
--with-libs
--with-zlib=/work/ssh/install/zlib-1.2.11
--with-ssl-dir=/work/ssh/install/openssl-0.9.8l
--disable-etc-default-login
CC=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-gcc
AR=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-ar
make
6.将编译好的文件和库放到开发板相关的目录
确保开发板有一下目录,如果没有则创建.
/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/
然后将交叉编译主机/work/ssh/source/openssh-6.2p1/目录中
scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan拷贝到开发板/usr/local/bin/
sshd 拷贝到开发板 /usr/local/sbin/
moduli ssh_config sshd_config拷贝到开发板/usr/local/etc/
sftp-server ssh-keysign 拷貝到目標板 /usr/local/libexec
然后cd交叉编译主机/work/ssh/source/openssh-6.2p1/目录生成key文件
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
将生成的 ssh_host_*_key这3ge文件copy到开发板的 /usr/local/etc/目录下
接着在开发板中看看有没有/usr/lib目录,如果没有就创建,将交差编译主机的/work/ssh/install/zlib-1.2.11/lib目录中的libz.so.1文件拷贝到开发板/usr/lib/目录下
7.修改开发板的passwd文件
在开发板/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
8.测试
在开发板运行
#/usr/local/sbin/sshd
可以用ps命令查看sshd是否在工作