一、下载源码
zlib官方下载:http://www.zlib.net/
openssl官方下载:http://www.openssl.org/source ( OpenSSL >= 1.0.1 < 1.1.0)或 LibreSSL http://www.libressl.org/
openssh官网下载:http://www.openssh.com/portable.html
二、编译源码
源文件在ubuntu上的目录结构如下:
1、编译zlib
CC=aarch64-linux-gnu-gcc CFLAGS="-O4" ./configure --static --prefix=/home/yasir/myproject/sftp/install/zlib
make && make install
2、编译openssl:openssl根目录下:
./Configure --prefix=/home/yasir/myproject/sftp/install/ssl os/compiler:aarch64-linux-gnu-gcc
make && make install
3、编译openssh
./configure --host=arm-linux --prefix=/usr/local --with-zlib=/home/yasir/myproject/sftp/install/zlib --with-ssl-dir=/home/yasir/myproject/sftp/install/ssl --disable-etc-default-login --disable-strip CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar --without-pie
make //不需要install
可能会出现缺少libssl-dev
执行apt-get install libssl-dev 安装libssl-dev 即可
注意: --prefix=/usr/local 路径的指定,很多人说没有实质用处,其实是有用的,在开发板上执行sshd时,sshd会在 --prefix=/usr/local 这个指定的路径下寻找秘钥对,当然我们也可以在sshd_config文件中配置这个路径。
三、openssh移植
1、开发板上创建,我采用网络文件系统启动,看个人的方式了。
mkdir /usr/local/bin -p
mkdir /usr/local/sbin -p
mkdir /usr/local/etc -p
mkdir /usr/libexec -p
将主机上openssh编译的文件拷贝到这些目录中:这里只是演示一下,实际命令不是这个,按需调整。
cp ./{scp,sftp,ssh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan} /usr/local/bin
cp ./{moduli,ssh_config,sshd_config} /usr/local/etc
cp ./{sftp-server,ssh-keysign} /usr/libexec
cp ./sshd /