移植open ssh到TQ2440开发板上,从网上查找了资料,结合自己的实践整理了下面的文章
1. 下载需要的源码:
openssh-6.2p2.tar.gz
openssl-1.0.1e.tar.gz
zlib-1.2.8.tar.tar
2. 编译:
在/work目录下创建ssh目录
# mkdir /work/lib ----〉共享库目录,通过nfs挂载
# mkdir /work/ssh -----〉工作目录
# cd /work/ssh
# mkdir compressed -----〉compressed 用于存放源码包
# mkdir install 软件安装目录
# mkdir source源码包解压目录
#mv /work/openssh-6.2p2.tar.gz /work/ssh/compressed
#mv /work/openssl-1.0.1e.tar.gz /work/ssh/compressed
#mv /work/zlib-1.2.8.tar.tar /work/ssh/compressed
(1) 编译zlib:
# cd /work/ssh/compressed/
# tar xvf zlib-1.2.8.tar.tar -C ../source
# cd ../source/zlib-1.2.8
# ./configure --prefix=/work/ssh/install/zlib-1.2.8
# vim Makefile
CC=arm-linux-gcc
AR=arm-linux-ar
CPP =arm-linux-gcc -E
LDSHARED=arm-linux-gcc
# make
# make install
(2) 编译openssl:
# cd /work/ssh/compressed/
# tar zxvf openssl-1.0.1e.tar.gz -C ../source
# cd ../source/openssl-1.0.1e
# ./Configure --prefix=/work/ssh/install/openssl-1.0.1e os/compiler:arm-linux-gcc
# make
# make install
(3) 编译openssh:
# cd /work/ssh/compressed
# tar zxvf openssh-6.2p2.tar.gz –C ../source
# cd ../source/ openssh-6.2p2
#./configure --host=arm-linux --with-libs --with-zlib=/work/ssh/install/zlib-1.2.8 --with-ssl-dir=/work/ssh/install/openssl-1.0.1e --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
#make
注意:openssh不需要make install
3. 安装
3.1 从pc机上拷贝以下文件到目标板上;
(1) 将 openssh-6.2p2目录下的 sshd 拷贝到 目标板的/usr/sbin目录下,
(2)再copy scp sftp ssh ssh-add ssh-agent ssh-keygen
ssh-keyscan 到目标板/usr/local/bin目录下
(3)copy sftp-server ssh-keysign 到/usr/local/libexec
(4) 在目标板下:
mkdir -p /usr/local/etc/
然后将openssh下的sshd_config,ssh_config 拷贝到该目录下
mkdir -p /var/run; mkdir -p /var/empty/sshd
chmod 755 /var/empty
(5)生成key文件:
在目标板上,进入/usr/local/etc/目录,执行以下命令:
../bin/ssh-keygen -t rsa1 -f ssh_host_key -N ""
../bin/ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
../bin/ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
(6) 添加用户:
将主机上 /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.2.97(目标板的ip),输入root账户的密码连接即可。
------------------------------------------------
5、下面的内容先备份还需要修改验证
下边进行免密码登录设置:
cp(主机) root/.ssh/id_dsa.pub 到 (开发板)/.ssh/authorized_keys
---------------------------------------------------
如何让板子开机以后自动启动sshd服务:
添加:/etc/rc.d/init.d/sshd
#!/bin/sh
base=sshd
# See how we were called.
case "$1" in
start)
/sbin/$base
;;
stop)
pid=`/bin/pidof $base`
if [ -n "$pid" ]; then
kill -9 $pid
fi
;;
esac
在更改/etc/init.d/rcS,添加:
mkdir -p /var/empty/sshd
/etc/rc.d/init.d/sshd start
然后重启机器,一切OK!