Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2295813
  • 博文数量: 395
  • 博客积分: 10994
  • 博客等级: 上将
  • 技术积分: 5586
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 19:49
文章存档

2014年(1)

2013年(10)

2012年(74)

2011年(303)

2010年(7)

分类: LINUX

2011-07-13 10:26:08

不过下面的方法我没有做过
 
有两种ssh
一种:drop ssh:
另一种就是下面的openssh

移植openssh至嵌入式ARM开发板2011-06-28 15:441. 开发板:SBC6020
CPU:AT91SAM9G20
Linux内核:2.6.30
板子拿到手其中的telnet服务不好用,所以就想着移植一个ssh的服务器上去。
2. 首先下载源码包:
openssh-4.6p1.tar.gz  openssh-3.5p1.rar   (我在windows下又压缩了一下,所以要重新在windows下解压一下)
openssl-0.9.8e.tar.gz
zlib-1.2.3.tar.tar 。 zlib-1.2.3.rar   。
ssh服务需要依赖zlib和ssl库。
当然编译工具要准备好了,我用的是arm-liunx-gcc,安装在ubuntu 10上。
 
3.  交叉编译
建立目录结构
/EmbSSH
 compressed 用于存放源码包
 Install    软件安装目录
 Source    源码包解压目录
将openssh-4.6p1.tar.gz、openssl-0.9.8e.tar.gz、zlib-1.2.3.tar.tar四个文件放到compressed目录下
交叉编译 zlib
cd /EmbSSH/compressed/
tar xvf zlib-1.2.3.tar.tar -C ../source
cd ../source/zlib-1.2.3
./configure --prefix=/EmbSSH/install/zlib-1.2.3
修改Makefile中的如下信息
CC=arm-linux-gcc
AR=arm-linux-ar rc
CPP =arm-linux-gcc -E
LDSHARED=arm-linux-gcc
执行
make
make install
交叉编译openssl
cd /EmbSSH/compressed/
tar zxvf openssl-0.9.8e.tar.gz -C ../source
cd ../source/openssl-0.9.8e
./Configure --prefix=/EmbSSH/install/openssl-0.9.8e  os/compiler:arm-linux-gcc
make
make install
交叉编译openssh
cd /EmbSSH/compressed
tar zxvf openssh-4.6p1.tar.gz C ../source
cd ../source/openssh-4.6p1
./configure --host=arm-linux --with-libs --with-zlib=/EmbSSH/install/zlib-1.2.3 --with-ssl-dir=/EmbSSH/install/openssl-0.9.8e --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar

打印出如下信息:
OpenSSH has been configured with the following options:
User binaries: /usr/local/bin
........
Linker flags: -L/EmbSSH/install/openssl-0.9.8e/lib
                   -L/EmbSSH/install/zlib-1.2.3/lib
Libraries:   -lresolv -lcrypto -lutil -lz -lnsl  -lcrypt
执行make,不需要执行make install
至此需要编译的文件已经完成。
 
4.  安装sshd到开发板
在板子/usr/local建立文件夹bin etc libexec sbin share
将/EmbSSH/source/openssh-4.6p1目录中编译好的目标文件
scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan
复制到板子或镜像/usr/local/bin目录中(也可以放在/bin);
moduli  ssh_config  sshd_config复制到/usr/local/etc;
sftp-server  ssh-keysign复制到/usr/local/libexec目录(也可以放在/usr/libexec);
sshd复制到/usr/local/sbin目录(也可以放在/sbin或/usr/sbin);
建立sshd用户
可以直接修改/etc/passwd、/etc/group文件
在passwd中加入
sshd::103:103::/var/run/sshd:/bin/sh
在group中加入
sshd:*:103:
执行
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 ""
将生成的文件复制到/usr/local/etc目录中。
建立目录/var/empty
启动sshd服务
/usr/local/sbin/sshd(或/usr/sbin/sshd或/sbin/sshd)

此时就可以使用ssh客户端连接开发板了。
也可以将
mkdir -p /var/empty
/usr/local/sbin/sshd(或/usr/sbin/sshd或/sbin/sshd)
放置在/etc/init.d/rcS中,这样服务就能开机自动启动。

 
阅读(5563) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~