今天在参照两位前辈文章的情况下, 将ssh移植到了2440的arm板上, 现在不需要用minicom来控制uclinux了。 板子上的串口终于可以接上采集器。 主要参考文章:
1. 下载需要的源码:
mkdir -p ~/arm/fs ;mkdir -p ~/arm/source
下载zlib: wget -c http://www.zlib.net/zlib-1.2.3.tar.gz
下载ssl: wget -c http://www.openssl.org/source/openssl-0.9.8d.tar.gz
下载ssh: wget -c http://mirror.mcs.anl.gov/openssh/portable/openssh-4.6p1.tar.gz
2. 编译:
cd ~/arm/source
(1) 编译zlib:
tar zxvf zlib-1.2.3.tar.gz -C .
cd zlib-1.2.3/
./configure --prefix=/home/itlanger/arm/fs/zlib-1.2.3
修改Makefile:
tar zxvf
tar zxvf openssh-4.6p1.tar.gz
cd openssh-4.6p1/
./configure --host=arm-linux --with-libs --with-zlib=/home/itlanger/arm/fs/zlib-1.2.3
--with-ssl-dir=/home/itlanger/arm/fs/openssl-0.9.8d --disable-etc-default-login
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar
make
##不要make install
3. 安装
(1) 将 openssh-4.6p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下
(2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin目录下
copy sftp-server ssh-keysign 到/usr/local/libexec
(3) 在目标板下:
mkdir -p /usr/local/etc/
然后将openssh下的sshd_config, ssh_config 拷贝到该目录下
mkdir -p /var/run; mkdir -p /var/empty/sshd
chmod 755 /var/empty
(4)在主机上:
- http://blog.chinaunix.net/u1/43047/showart_371372.html
- http://blog.chinaunix.net/u2/63379/showart_513655.html
1. 下载需要的源码:
mkdir -p ~/arm/fs ;mkdir -p ~/arm/source
下载zlib: wget -c http://www.zlib.net/zlib-1.2.3.tar.gz
下载ssl: wget -c http://www.openssl.org/source/openssl-0.9.8d.tar.gz
下载ssh: wget -c http://mirror.mcs.anl.gov/openssh/portable/openssh-4.6p1.tar.gz
2. 编译:
cd ~/arm/source
(1) 编译zlib:
tar zxvf zlib-1.2.3.tar.gz -C .
cd zlib-1.2.3/
./configure --prefix=/home/itlanger/arm/fs/zlib-1.2.3
修改Makefile:
CC=gcc 改为:
CROSS=/usr/local/arm/3.4.1/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) 编译openssl:
tar zxvf
openssl-0.9.8d.tar.gz
./configure --prefix=/home/itlanger/arm/fs/openssl-0.9.8d
os/compiler:/usr/local/arm/3.4.1/bin/arm-linux-gcc
make
make install
(3)
编译openssh:
tar zxvf openssh-4.6p1.tar.gz
cd openssh-4.6p1/
./configure --host=arm-linux --with-libs --with-zlib=/home/itlanger/arm/fs/zlib-1.2.3
--with-ssl-dir=/home/itlanger/arm/fs/openssl-0.9.8d --disable-etc-default-login
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar
make
##不要make install
3. 安装
(1) 将 openssh-4.6p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下
(2) 再copy scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到目标板/usr/local/bin目录下
copy sftp-server ssh-keysign 到/usr/local/libexec
(3) 在目标板下:
mkdir -p /usr/local/etc/
然后将openssh下的sshd_config, ssh_config 拷贝到该目录下
mkdir -p /var/run; mkdir -p /var/empty/sshd
chmod 755 /var/empty
(4)在主机上:
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 ""
将生存的 ssh_host_* 4个文件copy到目标板的 /usr/local/etc/目录下
(5) 添加用户:
将主机上 /etc/目下的 passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh
其实可以删除不需要的一些用户。
这一步也可以这样,在目标板的passwd中添加sshd用户:
sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
在shadow中也添加对应的项就行了:
sshd:!:14069:0:99999:7:::
4.测试
目标板启动sshd: # /usr/sbin/sshd
主机: $ ssh -v root@192.168.0.34
ps: 红色的那些代表让arm做ssh server时必须的