交叉编译openssh

/ 0评 / 1

之前交叉编译那个sysbench感觉好轻松啊,一下子就OK了,还运行起来了,跑跑分(的确费时间,默认参数下),挺开心的呢,那么Linux下这么多开源的软件,是不是也可以跑跑呢,事不宜迟,来吧,这次猪脚是Openssh,这是一个很明确的需求,为什么这么说,现在系统上比较麻烦的事情是什么,没法SSH过去,只能串口,好烦人的呢,串口嘛,又占我USB,我电脑可破,只有三个USB口.下载源码就要三份,为什么呢,因为openssh依赖openssl,而openssl依赖zlib,zlib依赖基础C库,基础C库我们是动态连接的,没什么压力,为什么是这个依赖关系,就需要去问问openssh这人了,当然,在编译过程中,会因为缺乏库,而有提示,上次编译sysbench时候,应该已经有相关的指导~

首先三个包的下载地址:

openssh http://www.openssh.com/portable.html
openssl http://www.openssl.org/source
zlib http://www.zlib.net/


QQ截图20150702111615

关于解压的问题,我相信不需要教了吧,这个可以随时谷歌到的,然后新建一个install目录,用来存放编译结果.

make install

的然后切到最底端zlib库的依赖,进行配置编译~ [你应该不会把用户名也抄了吧]

CC=arm-fsl-linux-gnueabi-gcc ./configure --prefix=/home/tater/work/openssh/install/

QQ截图20150702102323

然后make;make install搞定:

QQ截图20150702102419

的然后切换到openssl目录编译[第一个字母的确是大写],接下来继续make,make install:

./Configure --prefix=/home/tater/work/openssh/install os/compiler:arm-fsl-linux-gnueabi-gcc

QQ截图20150702103404

接着切换到外面的install目录,检查是否有libz的库,以及openssl的程序,并用file检查是否为ARM.

QQ截图20150702103758

切换到openssh目录,然后:

CC=arm-fsl-linux-gnueabi-gcc AR=arm-fsl-linux-gnueabi-ar ./configure --host=arm-fsl-linux-gnueabi --with-libs --with-zlib=/home/tater/work/openssh/install --with-ssl-dir=/home/tater/work/openssh/install --disable-etc-default-login 

接着检查有没有错误就可以make,不用make install哦:

 

QQ截图20150702111939

紧张的make,马上就成功了:

QQ截图20150702111957

然后开始手工安装文件,先切换到install下,列举发现没有usr/local目录耶:

QQ截图20150702112248

新建几个目录:

mkdir usr
mkdir usr/local
mkdir usr/local/bin
mkdir usr/local/etc
mkdir usr/local/libexec
mkdir usr/local/sbin

然后复制文件:

cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ../install/usr/local/bin/
cp moduli ssh_config sshd_config ../install/usr/local/etc/
cp sftp-server ssh-keysign ../install/usr/local/libexec/
cp sshd ../install/usr/local/sbin/

QQ截图20150702113151

然后还要生成ssh-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 ""

QQ截图20150702113503

的将生成的 ssh_host_*_key这3个文件复制到目标板的../install/usr/local/etc/目录下.最后就是打包install目录下来,到目标板覆盖解压了,然后修改目标板的/etc/passwd文件,加一行:

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

 然后重启后就可以用完整的SSH了.说实话程序有点大~ 所以大多数人还是用Dropbear.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注