openssh arm linux 编译,交叉编译openssh

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

首先三个包的下载地址:

openssh arm linux 编译,交叉编译openssh_第1张图片

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

make install

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

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

openssh arm linux 编译,交叉编译openssh_第2张图片

然后make;make install搞定:

openssh arm linux 编译,交叉编译openssh_第3张图片

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

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

openssh arm linux 编译,交叉编译openssh_第4张图片

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

openssh arm linux 编译,交叉编译openssh_第5张图片

切换到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哦:

openssh arm linux 编译,交叉编译openssh_第6张图片

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

openssh arm linux 编译,交叉编译openssh_第7张图片

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

openssh arm linux 编译,交叉编译openssh_第8张图片

新建几个目录:

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/

openssh arm linux 编译,交叉编译openssh_第9张图片

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

openssh arm linux 编译,交叉编译openssh_第10张图片

的将生成的 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.

你可能感兴趣的:(openssh,arm,linux,编译)