mini2440移植ssh

1. 准备工作
开发板连接路由器,并设置好网络。

下载所需的源码并解压:
下载zlib:  zlib-1.2.3.tar.gz  http://sourceforge.net/projects/gnuwin32/files/zlib/1.2.3/
下载ssl :  openssl-0.9.8d.tar.gz  http://www.openssl.org/source/openssl-0.9.8d.tar.gz
下载ssh : openssh-4.6p1.tar.gz  http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz

配置交叉编译工具,使用友善之臂提供的交叉编译工具arm-linux-gcc,版本4.4.3 。

2. 编译

2.1 zlib
进入zlib源码目录,执行如下操作:
————————-

————————-

修改生成的Makefile文件:
CC=gcc                   修改为: CROSS=path/to/cross/compiler/bin/arm-linux-
CC=$(CROSS)gcc
LDSHARED=gcc     修改为: LDSHARED=$(CROSS)gcc
CPP=gcc -E             修改为: CPP=$(CROSS)gcc -E
AR=ar rc                   修改为: AR=$(CROSS)ar rc
————————-
$ make
————————-
$ make install

2.2 openssl
进入openssl源码目录,执行如下操作:
————————-

————————-

$ make
————————-
$ make install

2.3 openssh
进入openssh源码目录,执行如下操作:
————————-

————————-

make

3. 安装
在开发机上配置nfs并启动,在开发板上挂载该nfs目录,执行命令如下:
# mount  -o nolock  -t nfs  ip:path/to/nfs  path/to/mount

为开发板root用户设置密码,执行如下命令:
# passwd  root

确保开发板上有以下目录,没有则创建:
/usr/sbin
/usr/local/bin
/usr/local/libexec
/usr/local/etc

进入编译过的openssh源码目录,执行如下操作:
————————-
拷贝  sshd  到开发板  /usr/sbin  目录下
————————-
拷贝  scp  sftp  ssh ssh-add  ssh-agent  ssh-keygen  ssh-keyscan  到开发板  /usr/local/bin  目录下
————————-
拷贝  sftp-server  ssh-keysign  到开发板  /usr/local/libexec  目录下
————————-
拷贝  sshd_config  ssh_config  到开发板  /usr/local/etc  目录下
————————-

在开发板上新建如下目录:
/var/run
/var/empty/sshd
chmod 755 /var/empty

在开发机中随便创建一个目录,进入执行如下命令:
$ ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N “”
$ ssh-keygen -t rsa -f ssh_host_rsa_key -N “”
$ ssh-keygen -t dsa -f ssh_host_dsa_key -N “”
之后将生成的  ssh_host_*_key  这3个文件拷贝到开发板  /usr/local/etc  目录下。

4. 测试
在开发板上执行如下命令启动ssh服务:
# /usr/sbin/sshd

————————-
可能出现的错误:
Privilege separation user sshd does not exist
//需要在开发板的系统里adduser shhd(推荐使用该方法)
//或者在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

Permissions 0755 for ‘/usr/local/etc/ssh_host_dsa_key’ are too open.
//则把目标板/usr/local/etc/下的ssh_host_*几个文件的权限改为700。如果出现权限不够问题,用su – root进入root用户再改。
命令:#chmod 700 ssh_host_*

Permission denied (publickey,password,keyboard-interactive).
//打开开发板/usr/local/sshd_config,将PermitRootLogin yes前的注释“#”号去掉。
————————-

在开发机上执行如下命令ssh登录到开发板:
$ ssh  root@开发板ip

发表评论

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

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">