为S3C2401交叉编译ssh
时间:2015-01-27 18:26 来源: 我爱IT技术网 作者:小搜
去年前写的一篇嵌入式arm-linux开发板设备上交叉编译ssh的文章,因为当时被墙就扔一边了,今天找出来了,放博客上备忘。
手头有块这块开发板只支持telnet但不支持ssh,决定编译一个。
网上有不少介绍如何交叉编译的文章,本人照方抓药,成功编译运行。我参考的是ctbinzi的文章 将Open SSH Server 移植到ARM Linux成功,ctbinzi的这篇文章写的详细无比,特此向他表示感谢。
不过在最后ssh连接的时候遇到了点小麻烦,记下来备忘。
环境
os : Linux Industech 2.6.21.5-cfs-v19 #177 Sat Nov 6 13:18:50 CST 2010 armv5tejl unknown
开发板型号:S3C2401
gcc : arm-linux-gcc4.2.2
zlib: zlib-1.2.5
openssl : openssl-1.0.0c
openssh : openssh-5.6p1
在交叉编译之前一定要先把交叉编译环境准备好。
1.准备编译环境
1.1.下载源码
需要的源码可以在下面下载到
libz:http://www.zlib.net/
openssl:http://www.openssl.org/source
openssh:http://www.openssh.com/portable.html
1.2.准备编译目录
工程目录:/home/jim/source/c/arm-linux-eabi-sdk/env/openssh (所有的源码、输出文件都在这里)
编译的库目录:/home/jim/source/c/arm-linux-eabi-sdk/env/openssh(编译的中间库,比如zlib,openssl)
输出目录:/home/jim/source/c/arm-linux-eabi-sdk/env/bin(最终的输出文件)
为了表示方便,工程目录用<openssh_home>表示
2.编译zlib-1.2.5
将压缩包解压到
<openssh_home>/source/zlib-1.2.5
jim@jim-laptop:~ /source/c/arm-linux-eabi-sdk/env/openssh/source/zlib-1.2.5$ ./configure --prefix=/work/ssh/install/zlib-1.2.3 jim@jim-laptop:~ chmod 775 jim@jim-laptop:~ ./configure --host=arm-9tdmi-linux-gnu --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login CC=arm-9tdmi-linux-gnu-gcc AR=arm-9tdmi-linux-gnu-ar jim@jim-laptop:~ ./configure --host=arm-9tdmi-linux-gnu --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login CC=arm-9tdmi-linux-gnu-gcc AR=arm-9tdmi-linux-gnu-ar //注意:openssh不需要make jim@jim-laptop:~ ./configure --host=arm-unknown-linux-gnu --with-zlib=/home/jim/source/c/arm-linux-eabi-sdk/env/openssh/install/zlib-1.2.5 --with-ssl-dir=/home/jim/source/c/arm-linux-eabi-sdk/env/openssh/install/openssl-1.0.0c --disable-etc-default-login CC=arm-unknown-linux-gnueabi-gcc-4.2.2 AR=arm-unknown-linux-gnueabi-ar moduli ssh_config sshd_config ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub 拷贝到目标板 /usr/local/etc 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 ""
将主机上 /etc/目下的 passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh 其实可以删除不需要的一些用户。
注意:前提条件是主机上用OpenSSH服务器,加入没有OpenSSH服务器,passwd文件里面没有sshd用户记录也是没用的,建议手动添加sshd用户
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
